2010-01-26 83 views
11

Tengo el requisito de poder generar PDF dentro de nuestra aplicación (ASP.net). Necesitamos cumplir con los siguientes requisitos:Generación dinámica de PDF a partir de la plantilla

  1. El texto será en gran parte dinámico y se debe agregar programáticamente.

  2. Idealmente, nos gustaría basar estos documentos generados en plantillas PDF proporcionadas por nuestros diseñadores.

  3. Algunas de las secciones/páginas pueden o no ser visibles dependiendo de ciertas condiciones - idealmente nos gustaría que el contenido 'fluya' hacia arriba para llenar el espacio cuando se elimina algo.

  4. Algunas de las páginas pueden necesitar repetirse, dependiendo de ciertas condiciones.

  5. Algunas de las plantillas PDF estarán fuera de nuestro control (estamos rellenando formularios de solicitud suministrados por terceros), por lo que sería bueno leer en un PDF en blanco y llenarlo.

He mirado en iTextSharp y parece que hacer la mayoría de estas cosas (es decir, que puede tomar un PDF, editarlo para incluir campos de formulario en los que necesitamos para llenar los datos y luego utilizar iTextSharp leer que en como una plantilla y rellenar los datos), sin embargo, no estoy seguro de cómo esconder secciones completas y/o repetir páginas.

Lo que estoy buscando aquí es un pequeño consejo de alguien que ha estado en una situación similar.


pequeña actualización aquí, fuimos con iTextSharp - es una herramienta poderosa, pero no tomar un poco de aprendizaje, sin embargo, es fácil, luz, y hace precisamente lo que queremos que haga.

Sin embargo ...

me gustaría señalar que la última versión ya no es realmente libre (como en la cerveza) - la licencia no permite el uso comercial. Como resultado, ahora tenemos una versión con licencia, pero no es sorprendentemente barato (y no publican una lista de precios).

+0

ver esto [artículo] (http://www.nopcommerce.com/boards/t/15568/feature-request-template-based-reporting-system.aspx) en informes basados ​​en plantilla. Este es el convertidor [html a pdf] (http://www.hiqpdf.com) del que están hablando. –

Respuesta

5

Yo usaría iTextSharp. Creo todo tipo de archivos PDF basados ​​en diferentes plantillas e iText me ha funcionado mejor. Es un control muy potente y puede manipular archivos PDF de cualquier forma.

No estoy seguro de que iText pueda manejar su tercer requisito. Sé que puede crear un pdf desde un archivo html. Tal vez use lo que Tomas publicó y cree el pdf con iText.

+0

iTextSharp no aplica el CSS ... Quiero hacer una tabla con borde, pero no funciona .... También color de fondo , no funciona ... –

5

Existen varios componentes comerciales para hacer esto. Mire: PDFLib (http://www.pdflib.com/), Componentes altos (http://www.tallcomponents.com/) etc

Tengo productos de componentes altos y puedo recomendarlos.

Algunos otros son mucho más caros.

ITextSharp como usted ha mencionado es bastante bueno y se puede usar para agregar/eliminar páginas externas, en este caso puede omitir páginas completas omitiéndolas o reemplazándolas con páginas de marcador de posición. iText puede usar archivos PDF existentes o crear páginas en blanco.

Desde mi experiencia personal, acabo de agregar imágenes y texto en páginas existentes y páginas agregadas generadas por una herramienta de informes cuando se requieren datos tabulares.

HTH

+0

Mmm. Pero si el contenido para ocultar es una sección dentro de una página, esto se vuelve un poco más difícil. – Paddy

+0

Puede agregar una página que no contenga esa sección, luego ajustar programáticamente otra página (o ambas) y luego reemplazarla cuando lo necesite? –

0

Me gustaría considerar el uso de la creación de archivos HTML a partir de plantillas y convertirlos en formato PDF con Prince.Prince es muy flexible y la creación de archivos HTML a partir de plantillas es mucho más fácil que crear archivos PDF directamente.

+1

Actualmente hacemos algo como esto (usando activePDF) y es un poco lento. – Paddy

+0

'Ofrecemos una licencia gratuita para uso no comercial de Prince. Esta licencia agrega un pequeño logotipo a la primera página de archivos PDF generados. – Thomas

2

¿Por qué necesitan los archivos de plantilla en formato pdf? Con la dinámica que desea, es un formato incorrecto para la plantilla de informes. Use un software de informes que también dé como resultado en pdf. Sus diseñadores pueden crear las plantillas muy fácilmente con una GUI. Aquí encontrará muchas soluciones de informes en stackoverflow.

1

Hemos usado http://www.dynamicpdf.com/, para proyectos como este y hemos estado satisfechos con el resultado. Tienen una herramienta de diseño PDF WYSIWYG que puede usar para construir la plantilla de diseño de su PDF, junto con la herramienta para fusionar la plantilla con sus datos en función del mapeo de campo a columna. Esto ahorra horas de codificación manual de cada elemento de un PDF dado. Es compatible con los encabezados y pies de página y trata con las complejidades de los saltos de página.

+0

esto no es freeware – luka

Cuestiones relacionadas