Tecnología

Inicio

Cómo crear archivos PDF con C Código Fuente

La creación de Adobe PDF (Formato de Documento Portátil) con una aplicación escrita en el lenguaje de programación C podría potencialmente implicar muchas horas de descifrar la documentación de Adobe. Pero, al menos un proyecto de código abierto (libre) ha hecho que el trabajo ya para producir una biblioteca con la que sus programas en C pueden unir para crear archivos PDF.

Instrucciones

1 Descargar el PDF Library Haru libre de Libharu.org. Seleccione la libharu- <version> -vc6.zip para su descarga, que está bajo el \ "Windows Binarios \" la partida. Descargar una dependencia de la biblioteca de Haru, el Zlib, desde el enlace de Zlib en la sección Recursos de este artículo.

2 Crear un nuevo Visual C ++ Windows32 aplicación de consola.
Introduzca \ "pdfmkr \" para el nombre del proyecto y \ "C: \ Users \ <NombreDeUsuario> \ Desktop \ pdfmkr \" por su ubicación. No marque la casilla \ "Crear directorio \".

3 Instalar los archivos de la biblioteca: descomprimir los archivos libharu-2.1.0-vc6.zip y zlib123-dll.zip en las ubicaciones predeterminadas asignadas por la aplicación de descompresión.

Copia el libhpdf.lib y los archivos de la subcarpeta libhpdf.exp lib del archivo zip libHaru descomprimido, a C: Users \ <NombreDeUsuario> \ Desktop \ pdfmkr \ \ pdfmkr.

4 Copia el zdll.lib, zdll.exp y archivos de zdll.def subcarpeta lib del Zlib descomprimida en la misma carpeta de destino que se hace referencia en el Paso 3. Asimismo, copiar el archivo zlib1.dll desde la carpeta

raíz (no la subcarpeta lib) de la zlib carpeta descomprimida, al paso carpeta de destino de 3.

5 Copiar los archivos de cabecera a donde el compilador Visual C ++ puede encontrarlos: copiar todos cabecera (extensión de archivo * .h) archivos de la libHaru \ "incluyen \" subcarpeta, en la misma carpeta desde el paso 3. Copie todos los archivos de cabecera de la Zlib zlib \ "include \" subcarpeta, al paso carpeta de destino de 3.

6 Crear referencias a los archivos lib que acaba de copiar de manera vinculador de Visual C ++ puede ver realmente ellos: ". Ver> Administrador de propiedades \" en el Visual C ++ IDE, seleccione \ En la ventana Administrador de propiedades, haga clic en \ "pdfmkr \" y seleccione \ "Propiedades. \" Exponer la \ "Enlazador> entrada \" nodo haciendo clic en \ "Propiedades de configuración, \", entonces \ "vinculador. \" En el \ "dependencias adicionales \" fila, introduzca los nombres de los archivos de la biblioteca que acaba de copiar: \ "zdll.lib \" y \ (pero no el archivo DLL) "libhpdf.lib \".

7 Pegue el siguiente código fuente en la ventana de código C ++ Visual:

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

include \ "stdafx.hy \" incluyen <stdlib.h> incluir <stdio.h> incluir <string.h> incluir <setjmp.h> include \ "hpdf.h \"

env jmp_buf
IR

ifdef HPDF_DLL

__stdcall vacío

más

vacío

terminara 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)

IR

longjmp(env, 1)

IR
}

const fnombre char [] = \ "myPDF.PDF \"
IR

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

HPDF_Doc objPDF

IR

HPDF_Page pdfPage

IR

HPDF_Font font

IR

HPDF_REAL pageHeight

IR

objPDF = HPDF_New (cbHandleErr, NULL)

IR

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

IR

return 1

IR

}

si (setjmp (env)) {
HPDF_Free (objPDF)

IR

return 1

IR

}

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

IR
pageHeight = HPDF_Page_GetHeight (pdfPage)
IR

/* Put some text on pdfPage */

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

HPDF_Page_SetFontAndSize (pdfPage, font, 24)

IR

HPDF_Page_BeginText (pdfPage)

IR
HPDF_Page_TextOut (pdfPage, 20, pageHeight-75, \ "Mi primera PDF \"); //sí

HPDF_Page_EndText (pdfPage)

IR

HPDF_SaveToFile (objPDF, fname)

IR

HPDF_Free (objPDF)

IR

return 0

IR
}

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

8 Presione F5 para compilar y ejecutar el programa. Busque el archivo de salida, myPDF.PDF, en la carpeta que se hace referencia en el paso 3.

Consejos y advertencias

  • Para el Paso 3, instalar todos los archivos .h lib * y de la Zlib y archivos zip libhpdf a la carpeta que contiene el archivo de cabecera stdafx.hy de su proyecto. Ahí es donde se ve Visual C ++ para incluir archivos de la biblioteca y en la construcción de una aplicación en modo de depuración / desarrollo. Si usted no ve stdafx.hy en la carpeta mencionada en el paso 3, utilice el Explorador de Windows para buscarla.