Red de conocimiento informático - Material del sitio web - ¿Cómo hacer una muestra en PDF?

¿Cómo hacer una muestra en PDF?

Los archivos PDF son actualmente un formato de documento electrónico popular. Este formato se usa a menudo en el desarrollo de software como la automatización de oficinas (OA). Sin embargo, hay muy poca información sobre cómo crear archivos en formato PDF. Busqué en Internet y ahora los he vuelto a publicar. Lo mismo El método de descifrado por "fuerza bruta", el fragmento de código es el siguiente:

long streamEnd=0;

long streamLen =0;

string strPDFMessage= null;

p>

// Información del encabezado del archivo PDF

strPDFMessage="PDF-1.1\n";

ConvertToByteAndAddtoStream( strPDFMessage);

xRefs.Add(mPDF.Length);

strPDFMessage="1 0 obj\n";

ConvertToByteAndAddtoStream(strPDFMessage);

strPDFMessage="lt ;lt; /Longitud 2 0 R gt;gt;\n";

ConvertToByteAndAddtoStream( strPDFMessage);

strPDFMessage="stream\n ";

ConvertToByteAndAddtoStream(strPDFMessage);

......

Mirando el método de producción anterior, rompí tres tazas. Si puedo usar El método original anterior para crear un archivo PDF satisfactorio, debe ser genial. Más tarde, leí una introducción a los controles utilizados específicamente para crear archivos PDF desde un sitio web (URL: /index.html). En secreto, me encantó. Lo descargué de inmediato y lo probé. Como era de esperar, fue fácil crear el PDF. archivo que quería. Dado que el sitio web era Hay mucho contenido en inglés y es muy difícil de leer. Después de resolver mi propio problema, vi que muchos internautas todavía estaban frustrados porque no podían crear archivos PDF, así que decidí hacerlo. Traduce el contenido al chino. Dado que mi nivel de inglés es promedio, muchos lugares son oscuros y difíciles de entender, por lo que la calidad de la traducción no es la ideal. Corrígeme, pero la mayor parte se puede entender. El propósito de escribir este artículo es, en primer lugar, resolver las necesidades urgentes de algunos internautas y, en segundo lugar, inspirar a otros. Si algún hermano está dispuesto a traducir con precisión el contenido de este sitio web, será una gran bendición para el mundo.

Para utilizar el método de este artículo para generar archivos PDF, necesita dos controles: itextsharp.dll e ICSharpCode.SharpZipLib.dll. Como hay demasiados códigos de muestra, ordenaré todos los códigos y. Ponlos en otro documento "Sample Code.doc", todos estos recursos, los puse en la carpeta "Guía de producción de archivos PDF" en mi sitio ftp (ftp://202.107.251.26) (los otros dos archivos rar en el. Las carpetas están comprimidas El archivo es el código fuente de estos dos controles para que todos puedan aprender), puede ir aquí para estudiarlo y usarlo), también puede ir aquí para descargar los recursos correspondientes o descargarlo directamente desde el sitio web original.

Para facilitar la depuración y la descripción, todos los ejemplos son programas de consola DOS que se utilizan de la misma manera. Siga los siguientes pasos para crear un proyecto de depuración:

1.

2. Haga clic en el menú "Archivo" → "Nuevo" → "Nuevo" → "Proyecto", seleccione "Proyecto de Visual C#" en el tipo de proyecto, seleccione "Aplicación de consola" en la plantilla y ingrese el nombre del archivo, por ejemplo, "MakePdf", especifique la ruta de almacenamiento y luego haga clic en el botón Aceptar;

3. Haga clic con el botón derecho en "Referencias" en "Explorador de soluciones" y seleccione "Agregar referencia" en. en el menú emergente, seleccione "B.NET" en la carpeta ".NET" y luego haga clic en el botón "Aceptar". NET", seleccione la carpeta "Examinar .NET", seleccione "Examinar" y agregue las dos aplicaciones mencionadas anteriormente, como se muestra a continuación:

4. Agregue dos aplicaciones en la parte superior de la ventana de código Referencias :

Usar iTextSharp.text;

Usar iTextSharp.text.pdf

En este punto, el trabajo de preparación está completo. > Parte de una aplicación simple de iText Capítulo 1 Creación de un documento

Cinco pasos para crear un archivo PDF usando iText: helloword.

El primer paso es crear un iTextSharp.text. Objeto de documento pdf:

Documento documento = nuevo documento ();

El segundo paso es crear una instancia de escritor para el documento:

PdfWriter.getInstance( documento, nuevo FileStream( "Chap0101.pdf ", FileMode.Create));

El tercer paso, abre el documento actual

document.Open();

El cuarto paso, Agregar contenido al documento actual:

document.Add(new Paragraph(" Hola mundo")

Paso 5, cerrar el documento

document.Close ();

El código completo está en el código de muestra 0101.

En el ejemplo, no es difícil ver que la producción de documentos PDF es muy simple.

Nota: por así decirlo, en el ejemplo, la cadena "Hello Word" en "document.Add(new Paragraph("Hello World"));" "Este es mi primer documento PDF". El resultado definitivamente lo decepcionará. Debido a que los caracteres chinos no se muestran en los archivos PDF generados, no se preocupe, el problema de la fuente se explicará específicamente en el Capítulo 9. Si los caracteres chinos no se pueden mostrar correctamente, no es necesario traducir este artículo.

Los siguientes pasos se presentarán en detalle.

El primer paso es crear una instancia de documento:

iTextSharp.text.Document-object*** tiene tres objetos: Documento-objeto***, Documento-objeto***, Documento-objeto***.

Objeto-documento*** tiene tres constructores:

Documento público();

Documento público (Tamaño de página rectangular),

Documento público (Tamaño de página rectangular, <). /p>

int marginLeft,

int marginRight,

int marginTop,

int marginBottom

Primero El primero); El constructor llama al segundo constructor con la página A4 como parámetro, y el segundo constructor llama al tercer constructor con los márgenes de página de 36 puntos en cada lado como parámetro

u Tamaño de página:

Puede crear su propia página especificando el color y el tamaño de la página. El código de ejemplo 0102 crea una página con un fondo fino de color amarillo claro:

Tamaño de página rectangular = nuevo rectángulo (144, 720); >

pageSize.BackgroundColor = new Color (0xFF, 0xFF, 0xDE);

Document document = new Document(pageSize); , puede elegir entre los siguientes tamaños de página:

A0-A10, LEGAL, CARTA, MEDIA CARTA, _11x17, LEDGER, NOTA, B0-B5, ARCH_A-ARCH_E, FLSA y FLSE

Utilice páginas verticales en la mayoría de los casos, si desea utilizar páginas horizontales, simplemente utilice la función rotar():

Documento documento = nuevo Documento(PageSize.A4. rotar ()

Para obtener un código detallado, consulte el código de muestra 0103.

u Márgenes:

Al crear un documento, también puede definir los márgenes superior, inferior, izquierdo y derecho:

Documento documento = nuevo documento (PageSize. 108, 180);

En el código de muestra 0104, puede ver que el documento tiene un margen izquierdo de 0,5 pulgadas, un margen derecho de 1 pulgada, un margen superior de 1,5 pulgadas y un margen inferior de 1,5 pulgadas. La distancia es de 2,5 pulgadas.

Nota:

A la hora de crear un rectángulo o configurar márgenes, es posible que te preguntes qué unidad de medida utilizar: centímetros, pulgadas o píxeles. De hecho, el sistema de medidas predeterminado se basa en la tipografía. Unidad de puntos para derivar aproximaciones en otras unidades, por ejemplo 1 pulgada = 72 puntos, si desea crear un rectángulo en un PDF de página A4, necesita calcular los siguientes datos:

21 cm/2,54 = 8,2677 pulgadas

p>

8,2677 pulgadas * 72 = 595 libras

29,7 cm / 2,54 = 11,6929 pulgadas

11,6929 pulgadas * 72 = 842 libras

Los márgenes predeterminados son 36 libras o media pulgada.

Si cambias el tamaño de la página, solo afectará a la página siguiente; si cambias los márgenes, afectará a todas las páginas, así que úsalo con precaución.

Para conocer el valor inicial de la página, consulte el paso tres.

Paso 2 Crear una instancia de Writer

Después de crear un documento, podemos crear varias instancias de Writer para el documento, todas las cuales heredan de la clase abstracta "iTextSharp.text.DocWriter". .

También en otro caso, puedes usar iTextSharp.text.pdf.PdfWriter para generar archivos PDF. Si quieres crear documentos TeX, puedes usar el paquete iTextSharp.text.TeX.TeXWriter.

El constructor de la clase Writer es privado, solo puedes crear instancias a través de los siguientes métodos:

public static xxxWriter getInstance(Document document, Stream os) (xxx es Pdf o); Xml )

Puedes crear una instancia mediante:

PdfWriter escritor = PdfWriter.getInstance(document, new FileStream("Chap01xx.pdf"));

Pero casi nunca utilizará una instancia de Writer (a menos que desee crear archivos PDF avanzados o utilizar algunas funciones muy especiales como ViewerPreferences o Encryption). Entonces es suficiente obtener la instancia usando el siguiente método: PdfWriter.getInstance(document, new FileStream("Chap01xx.pdf"));

En el primer paso de la creación de un documento, el primer parámetro tiene no significa Grande, el segundo parámetro puede ser cualquier tipo de flujo, hasta ahora hemos estado usando System.IO.FileStream para escribir el archivo del documento, el código de ejemplo 0105 usa System.IO.MemoryStream (este no es un ejemplo independiente, debe Pruebe este código en el motor Servlet

Paso 3 Abra el documento

u Resumen

Antes de escribir cualquier dato real, existen algunas formas en las que quizás desee go Escriba algunos resúmenes sobre este documento:

public boolean addTitle(String title)

public public boolean addSubject(String asunto)

public boolean addKeywords(String). palabras clave)

addAuthor público booleano (autor de cadena)

addCreator booleano público (creador de cadena)

addProducer público booleano()

público boolean addCreationDate()

public boolean addHeader(String name, String content)

Puedes elegir tu propio título, tema, palabras clave, autor y creador, pero la información del producto a continuación siempre será Agregado: iTextSharp (o una referencia a iTextSharp) y fecha de creación (ambas en realidad se llaman automáticamente).

También puede agregar un nombre personalizado para "Información del encabezado", pero esto no tiene ningún efecto en PdfWriter. Si observa las "Propiedades del documento" del archivo pdf generado por el código de muestra 0101, podemos ver. ese solo el creador del PDF y la fecha del producto, mientras que el código de muestra 0106 tiene más información en el cuadro Propiedades del documento.

Cosas que hacer antes de abrir el documento:

Solo puede agregar un resumen antes de la llamada al método abierto, que es una opción proporcionada por las herramientas de desarrollo de iText.

En HTML, la información resumida se coloca al frente del documento, en el medio del identificador del encabezado, y llamar al método Open hará que la información resumida se escriba en la secuencia, lo que hace imposible cambie estos datos después de abrir el documento.

La información del encabezado del PDF no incluye el resumen, que es similar a:

PDF-1.2

Esta línea muestra que el documento generado es la versión 1.2 de el documento en formato PDF. 2 Documentos en formato PDF, en PDF, el resumen se almacena en el objeto PdfInfo, al cerrar el documento se ha escrito en el PdfWriter, por lo que no hay información relevante, por lo que la biblioteca no se puede modificar para cumplir con la tecnología de agregar o cambiar el resumen en cualquier momento Motivo

u Inicialización de página

El método Open generará un evento de inicialización cuando se ejecute en diferentes Witers al mismo tiempo, por ejemplo, si es necesario. una marca de agua o un objeto de esquina del encabezado para que aparezca primero en el documento. Al principio de la página, debe agregarlos antes de abrir el documento. Lo mismo se usa para configurar la marca de agua, el encabezado, las esquinas de la página, el número de página y el tamaño de otras páginas. del documento.

Cuando se llama al siguiente método:

public bool setPageSize(Rectangle pageSize)

public bool Add(Watermark watermark)

public void removeWatermark()

Establecer propiedades del encabezado

public void resetHeader()

Establecer propiedades del pie de página