Comment faire pour créer des fichiers PDF avec C Source Code

Création de fichiers Adobe PDF (Portable Document Format) avec une application écrite dans le langage de programmation C pourrait impliquer de nombreuses heures de déchiffrer la documentation d'Adobe. Mais, au moins un projet open source (gratuit) a fait que le travail déjà pour produire une bibliothèque avec laquelle vos programmes C peuvent lier pour créer des fichiers PDF.

Instructions

1 Télécharger le Haru PDF Library gratuit de Libharu.org. Sélectionnez le libharu- <version> fichier -vc6.zip pour le téléchargement, qui est sous le \ "Windows Binaries \" rubrique. Télécharger une dépendance de la bibliothèque Haru, l'Zlib, à partir du lien Zlib dans la section Ressources du présent article.

2 Créer un nouveau Visual C ++ Windows32 Application console.
Entrez \ "pdfmkr \" pour le nom du projet et \ "C: \ Users \ <YourUserName> \ Desktop \ pdfmkr \" pour son emplacement. Ne cochez pas la case \ "Créer un répertoire \".

3 Installer les fichiers de bibliothèque: dézipper les fichiers libharu-2.1.0-vc6.zip et zlib123-dll.zip aux emplacements par défaut assignés par votre application de décompression.

Copiez le libhpdf.lib et les fichiers libhpdf.exp du sous-dossier lib du fichier zip libharu décompressé, à C: \ Users \ <YourUserName> \ Desktop \ pdfmkr \ pdfmkr.

4 Copiez le zdll.lib, zdll.exp et fichiers zdll.def du sous - répertoire lib du décompressé Zlib dans le même dossier de destination référencé à l' étape 3. Aussi, copiez le fichier zlib1.dll à partir du dossier

racine (pas le sous - répertoire lib) du Zlib décompressé dossier, à l'étape destination du dossier de 3.

5 Copier les fichiers d'en-tête à l'endroit où le compilateur Visual C ++ peut les trouver: copier tous en-tête (extension de fichier * .h) fichiers à partir du libharu \ "include \" sous-dossier, dans le même dossier de l'étape 3. Copiez tous les fichiers d'en-tête Zlib de la Zlib \ "include \" sous-dossier, à l'étape destination du dossier de 3.

6 Créer des références aux fichiers lib vous venez de copier de manière lieur de Visual C peut effectivement les voir: ". Voir> Gestionnaire de propriété \" dans le Visual C ++ IDE, sélectionnez \ Dans la fenêtre Property Manager, cliquez droit sur \ "pdfmkr \" et sélectionnez \ "Propriétés. \" Exposer le \ "Linker> entrée \" noeud en cliquant sur \ "Propriétés de configuration, \" puis \ "Linker. \" Dans le \ "dépendances supplémentaires \" ligne, entrez les noms des fichiers de bibliothèque vous venez de copier: \ "zdll.lib \" et \ "libhpdf.lib \" (mais pas le fichier DLL).

7 Collez le code source suivant dans la fenêtre de code Visual C ++:

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

include \ "stdafx.h \" include <stdlib.h> inclure <stdio.h> inclure <string.h> inclure <setjmp.h> include \ "hpdf.h \"

jmp_buf env
ALLER

ifdef HPDF_DLL

__stdcall vide

autre

vide

fin si

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)

ALLER

longjmp(env, 1)

ALLER
}

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

int main (int argc, char ** argv)
{

HPDF_Doc objPDF

ALLER

HPDF_Page pdfPage

ALLER

HPDF_Font font

ALLER

HPDF_REAL pageHeight

ALLER

objPDF = HPDF_New (cbHandleErr, NULL)

ALLER

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

ALLER

return 1

ALLER

}

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

ALLER

return 1

ALLER

}

/ * Créer pdfPage * /
pdfPage = HPDF_AddPage (objPDF)

ALLER
pageHeight = HPDF_Page_GetHeight (pdfPage)
ALLER

/* Put some text on pdfPage */

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

HPDF_Page_SetFontAndSize (pdfPage, font, 24)

ALLER

HPDF_Page_BeginText (pdfPage)

ALLER
HPDF_Page_TextOut (pdfPage, 20, pageHeight-75, \ "Mon premier PDF \"); //Oui

HPDF_Page_EndText (pdfPage)

ALLER

HPDF_SaveToFile (objPDF, fname)

ALLER

HPDF_Free (objPDF)

ALLER

return 0

ALLER
}

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

8 Appuyez sur F5 pour compiler et exécuter le programme. Recherchez le fichier de sortie, myPDF.PDF, dans le dossier référencé à l'étape 3.

Conseils et avertissements

  • Pour l'étape 3, installez tous les fichiers .h lib et * de la Zlib et les fichiers libhpdf zip dans le dossier contenant le fichier d'en-tête stdafx.h de votre projet. Voilà où Visual C ++ cherche inclure et les fichiers de bibliothèque lors de la construction d'une application en mode debug / développement. Si vous ne voyez pas stdafx.h dans le dossier mentionné à l'étape 3, utilisez l'Explorateur Windows pour rechercher.