Hvordan lage PDF-filer med C Kildekode
Opprette Adobe PDF (Portable Document Format) filer med et program skrevet i programmeringsspråket C potensielt kan innebære mange timer med å tyde Adobes dokumentasjon. Men, har minst én åpen kildekode (gratis) prosjekt gjort det arbeidet som allerede er å produsere et bibliotek som din C-programmer kan koble til å lage PDF-filer.
Bruksanvisning
1 Last ned Haru Free PDF Library fra Libharu.org. Velg libharu- <versjon> -vc6.zip fil for nedlasting, som er under \ "Windows Binaries \" overskriften. Last ned en avhengighet av Haru biblioteket, Zlib, fra Zlib linken i denne artikkelen Resources.
2 Opprett en ny Visual C ++ Windows32 Console Application.
Skriv inn \ "pdfmkr \" for prosjektets navn og \ "C: \ Users \ <dittbrukernavn> \ Desktop \ pdfmkr \" for sin plassering. Ikke sjekk \ "Create directory \" boksen.
3 Installer bibliotekfilene: pakk ut libharu-2.1.0-vc6.zip og zlib123-dll.zip filer til standardplasseringene tilordnet av utpakking søknad.
Kopier libhpdf.lib og libhpdf.exp filer fra lib undermappe av den utpakkede libharu zip-filen, til C: \ Users \ <dittbrukernavn> \ Desktop \ pdfmkr \ pdfmkr.
4 Kopier zdll.lib, zdll.exp og zdll.def filer fra den utpakkede Zlib er lib undermappe til samme destinasjon mappe referert i trinn 3. Også kopiere zlib1.dll filen i
rotkatalogen (ikke lib mappen) av zlib pakket mappe, til trinn 3 destinasjon mappe.
5 Kopiere header filer til hvor Visual C ++ kompilatoren kan finne dem: kopierer alle header (filtype * .h) filer fra libharu \ "inkluderer \" undermappe, til den samme mappen fra trinn 3. Kopier alle ZLIB header filer fra zlib \ "inkluderer \" undermappe, til trinn 3 destinasjon mappe.
6 Lag referanser til lib filene du nettopp kopierte så Visual C ++ linker kan faktisk se dem: ". Vis> Eiendomssjef \" i Visual C ++ IDE, velg \ I Property Manager vinduet, høyreklikk \ "pdfmkr \" og velg \ "Properties. \" avslører \ "Linker> Input \" node ved å klikke på \ "Configuration Properties, \" da \ "Linker. \" i \ "Andre Avhengig \" rad, skriv navn på bibliotek filer du nettopp kopierte: \ "zdll.lib \" og \ "libhpdf.lib \" (men ikke DLL-fil).
7 Lim inn følgende kode i Visual C ++ kode vinduet:
//////////////////////////////////////////////
inkluderer \ "stdafx.h \" inneholder <stdlib.h> inkludere <stdio.h> inkluder <string.h> inkluder <setjmp.h> inkludere \ "hpdf.h \"
jmp_buf env
GÅ
ifdef HPDF_DLL
ugyldig __stdcall
ellers
tomrom
slutt om
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)
GÅ
longjmp(env, 1)
GÅ
}
const char fname [] = \ "myPDF.PDF \"
GÅ
int main (int argc, røye ** argv)
{
HPDF_Doc objPDF
GÅ
HPDF_Page pdfPage
GÅ
HPDF_Font font
GÅ
HPDF_REAL pageHeight
GÅ
objPDF = HPDF_New (cbHandleErr, NULL)
GÅ
if (!objPDF) {
printf (\"Can't create PdfDoc object\\n\")
GÅ
return 1
GÅ
}
if (setjmp (env)) {
HPDF_Free (objPDF)
GÅ
return 1
GÅ
}
/ * Lag pdfPage * /
pdfPage = HPDF_AddPage (objPDF)
GÅ
pageHeight = HPDF_Page_GetHeight (pdfPage)
GÅ
/* Put some text on pdfPage */
font = HPDF_GetFont (objPDF, \ "Times-Roman \", NULL)
GÅ
HPDF_Page_SetFontAndSize (pdfPage, font, 24)
GÅ
HPDF_Page_BeginText (pdfPage)
GÅ
HPDF_Page_TextOut (pdfPage, 20, pageHeight-75, \ "Min første PDF \"); //ja
HPDF_Page_EndText (pdfPage)
GÅ
HPDF_SaveToFile (objPDF, fname)
GÅ
HPDF_Free (objPDF)
GÅ
return 0
GÅ
}
//////////////////////////////////////////////
8 Trykk F5 for å kompilere og kjøre programmet. Se etter utdatafilen, myPDF.PDF, i mappen referert i trinn 3.
Hint
- For trinn 3, installere alle lib og * .h filer fra Zlib og libhpdf zip-filer til mappen som inneholder prosjektets stdafx.h header fil. Det er der Visual C ++ ser etter inkludere og bibliotekfiler når du bygger en app i debug / utvikling modus. Hvis du ikke ser stdafx.h i mappen nevnt i trinn 3, kan du bruke Windows Utforsker til å søke etter den.