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

ifdef HPDF_DLL

ugyldig __stdcall

ellers

tomrom

slutt om

cbHandleErr (HPDF_STATUS errNum,

HPDF_STATUS detail_num,
void *userinfo)

{

printf (\&quot;ERROR: errNum=%04X, detail_num=%u\\n\&quot;, (HPDF_UINT)errNum,
(HPDF_UINT)detail_num)

longjmp(env, 1)


}

const char fname [] = \ "myPDF.PDF \"

int main (int argc, røye ** argv)
{

HPDF_Doc objPDF

HPDF_Page pdfPage

HPDF_Font font

HPDF_REAL pageHeight

objPDF = HPDF_New (cbHandleErr, NULL)

if (!objPDF) {
printf (\&quot;Can't create PdfDoc object\\n\&quot;)

return 1

}

if (setjmp (env)) {
HPDF_Free (objPDF)

return 1

}

/ * Lag pdfPage * /
pdfPage = HPDF_AddPage (objPDF)


pageHeight = HPDF_Page_GetHeight (pdfPage)

/* Put some text on pdfPage */

font = HPDF_GetFont (objPDF, \ "Times-Roman \", NULL)

HPDF_Page_SetFontAndSize (pdfPage, font, 24)

HPDF_Page_BeginText (pdfPage)


HPDF_Page_TextOut (pdfPage, 20, pageHeight-75, \ "Min første PDF \"); //ja

HPDF_Page_EndText (pdfPage)

HPDF_SaveToFile (objPDF, fname)

HPDF_Free (objPDF)

return 0


}

//////////////////////////////////////////////

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.