October 25
Creazione di file Adobe PDF (Portable Document Format) con un'applicazione scritta nel linguaggio di programmazione C potrebbe potenzialmente coinvolgere molte ore di decifrare la documentazione di Adobe. Ma, almeno una (gratuito) progetto open source ha fatto quel lavoro già per produrre una libreria con la quale i programmi C possono collegarsi per creare file PDF.
1 Scarica il Free Library PDF Haru da Libharu.org. Selezionare la libharu- <version> -vc6.zip per il download, che è sotto il \ "Windows Binaries \" voce. Scarica una dipendenza della biblioteca Haru, il Zlib, dal collegamento Zlib nella sezione Risorse di questo articolo.
2 Creare un nuovo Visual C ++ Windows32 Applicazione console.
Inserisci \ "pdfmkr \" per il nome del progetto e \ "C: \ Users \ <YourUserName> \ Desktop \ pdfmkr \" per la sua posizione. Non selezionare la casella di controllo \ "Crea directory \".
3 Installare i file di libreria: decomprimere i file libharu-2.1.0-vc6.zip e zlib123-dll.zip alle posizioni predefinite assegnate dalla vostra applicazione di decompressione.
Copiare il file libhpdf.lib e libhpdf.exp dalla sottocartella lib del file zip libharu decompresso, in C: \ Users \ <YourUserName> \ Desktop \ pdfmkr \ pdfmkr.
4 Copiare il zdll.lib, zdll.exp e file zdll.def dalla sottocartella lib del decompressi del Zlib nella stessa cartella di destinazione si fa riferimento al punto 3. Inoltre, copiare il file zlib1.dll dalla cartella
principale (non la sottocartella lib) del zlib decompresso cartella, al punto 3 la cartella di destinazione di.
5 Copiare i file di intestazione per cui il compilatore Visual C ++ li può trovare: copiare tutti intestazione (estensione del file * .h) file dalla libharu \ "include \" sottocartella, nella stessa cartella dal punto 3. Copiare tutti i file di intestazione Zlib dalla zlib \ "include \" sottocartella, al punto 3 la cartella di destinazione di.
6 Creare riferimenti ai file lib appena copiati in modo che il Visual C ++ linker può effettivamente vedere loro: ". Visualizza> Property Manager \" in Visual C ++ IDE, selezionare \ Nella finestra Property Manager, fare clic destro \ "pdfmkr \" e selezionare \ "Proprietà. \" Esporre la \ "Linker> Input \" nodo cliccando \ "Proprietà di configurazione, \" poi \ "Linker. \" In \ "dipendenze aggiuntive \" riga, immettere i nomi dei file di libreria appena copiato: \ "zdll.lib \" e \ (ma non il file DLL) "libhpdf.lib \".
7 Incollare il seguente codice nella finestra del codice Visual C ++:
//////////////////////////////////////////////
includere \ "stdafx.h \" includere <stdlib.h> includere <stdio.h> includere <string.h> includere <setjmp.h> includere \ "hpdf.h \"
jmp_buf ENV
ANDARE
ifdef HPDF_DLL
__stdcall vuoto
altro
vuoto
finisci se
cbHandleErr (HPDF_STATUS ErrNum,
HPDF_STATUS detail_num,
void *userinfo)
{
printf (\"ERROR: errNum=%04X, detail_num=%u\\n\", (HPDF_UINT)errNum,
(HPDF_UINT)detail_num)
ANDARE
longjmp(env, 1)
ANDARE
}
const char fname [] = \ "myPDF.PDF \"
ANDARE
int main (int argc, char ** argv)
{
HPDF_Doc objPDF
ANDARE
HPDF_Page pdfPage
ANDARE
HPDF_Font font
ANDARE
HPDF_REAL pageHeight
ANDARE
objPDF = HPDF_New (cbHandleErr, NULL)
ANDARE
if (!objPDF) {
printf (\"Can't create PdfDoc object\\n\")
ANDARE
return 1
ANDARE
}
if (setjmp (env)) {
HPDF_Free (objPDF)
ANDARE
return 1
ANDARE
}
/ * Crea pdfPage * /
pdfPage = HPDF_AddPage (objPDF)
ANDARE
pageHeight = HPDF_Page_GetHeight (pdfPage)
ANDARE
/* Put some text on pdfPage */
font = HPDF_GetFont (objPDF, \ "Times-Roman \", NULL)
ANDARE
HPDF_Page_SetFontAndSize (pdfPage, font, 24)
ANDARE
HPDF_Page_BeginText (pdfPage)
ANDARE
HPDF_Page_TextOut (pdfPage, 20, pageHeight-75, \ "La mia prima PDF \"); //sì
HPDF_Page_EndText (pdfPage)
ANDARE
HPDF_SaveToFile (objPDF, fname)
ANDARE
HPDF_Free (objPDF)
ANDARE
return 0
ANDARE
}
//////////////////////////////////////////////
8 Premere F5 per compilare ed eseguire il programma. Cercare il file di output, myPDF.PDF, nella cartella fa riferimento al punto 3.