2008-10-01 43 views
16

Se han formulado preguntas similares, pero nada exactamente como el mío, así que aquí va.Conversión de documentos de MS Word a PDF en ASP.NET

Tenemos una colección de documentos de Microsoft Word en un servidor web ASP.NET con campos de combinación cuyos valores se completan como resultado de los envíos del formulario del usuario. Después de combinar el campo, el servidor debe convertir el documento a PDF y transmitirlo al navegador. Nuestra primera inclinación fue usar la API de Visual Studio Tools para Office; Sin embargo, nos encontramos con this warning from Microsoft:

Microsoft no recomienda actualmente, y no es compatible, Automatización de aplicaciones de Microsoft Office desde cualquier aplicación desatendida, no interactiva cliente o componente (incluyendo ASP, ASP.NET, DCOM, y NT Services), debido a que Office puede presentar un comportamiento inestable y/o interbloqueo cuando se ejecuta Office en este entorno.

Parece que la manipulación de campo se puede hacer mediante el Open XML SDK, pero ¿cuál es la mejor manera de convertir documentos de Word 2007 a PDF sin necesidad de abrir la Palabra? La solución óptima sería de bajo costo, escalable, de bajo consumo de memoria, fácil de implementar y con API .NET.

Respuesta

12

no es exactamente Open Source, pero Aspose tiene un par de productos que pueden hacer que,

Aspose.Pdf.Kit

Aspose.Pdf.Kit es un componente de manipulación no gráfica documento PDF ® que permite tanto Desarrolladores de .NET y Java para administrar archivos PDF existentes, así como para administrar campos de formularios integrados en archivos PDF. Aspose.Pdf es perfecto para crear nuevos archivos PDF; sin embargo, los desarrolladores a menudo necesitan editar documentos PDF ya existentes. Aspose.Pdf.Kit les permite hacer exactamente eso. Aspose.Pdf.Kit permite a los desarrolladores crear potentes aplicaciones para fusionar datos directamente en documentos PDF, así como para actualizar y administrar documentos PDF. Aspose.Pdf.Kit es un producto maravilloso y funciona muy bien con el resto de nuestros productos PDF.

y Aspose.pdf

Aspose.Pdf es un componente de informes de documentos PDF ® no gráfico que permite a cualquiera de las aplicaciones .NET o Java para crear documentos PDF a partir de cero y sin la utilización de Adobe Acrobat. Aspose.Pdf tiene un precio muy asequible y ofrece una gran cantidad de características sólidas que incluyen: compresión, tablas, gráficos, imágenes, hipervínculos, seguridad y fuentes personalizadas. Aspose.Pdf admite la creación de archivos PDF a través de API, plantillas XML y archivos XSL-FO. Aspose.Pdf es muy fácil de usar y cuenta con 14 demostraciones completas escritas en C# y Visual Basic.

Eche un vistazo a API y demos. Puede descargar una DLL gratis para probarla. He usado ambos antes y funcionan muy bien.

También hay iTextSharp que es un puerto C# de iText, un convertidor de Java PDF. Escuché que algunas personas lo intentan con resultados mixtos.

+1

Después de probar una serie de productos diferentes, Aspose definitivamente estaba por encima del resto. La principal desventaja es el costo, no es barato, pero obtienes lo que pagas. –

+0

Yo sería el segundo @glaxaco, los productos Aspose son geniales y el soporte es bueno, vale la pena el dinero. en una nota sidle Aspose Words soporta una conversión más fácil de documentos a PDF ahora. – John

+1

@John es correcto: ya no necesita el producto Aspose.Pdf por separado para crear archivos PDF a partir de documentos de Word. –

1

activePDF DocConverter - http://www.activepdf.com/

Pero requiere Office instalado en el servidor para la conversión de buena calidad.

12

La pregunta es "Documentos de MS Word a PDF en ASP.NET", así que estoy muy confundido sobre por qué se recomiendan Aspose.Pdf y Aspose.Pdf.Kit más arriba. Debe usar Aspose.Words porque es el componente que admite la conversión de documentos de Microsoft Word a PDF.

0

Aspose.Words puede ser la mejor opción para usted, pero no convierte todos los elementos visuales a la perfección.

Eche un vistazo a Muhimbi PDF Converter Web Services. Se ejecuta en Windows como un servicio, pero se puede acceder desde cualquier entorno que no sea compatible con servicios web de Windows, incluidos Java y .NET.

Aunque esta solución requiere que MS-Office esté instalado en un servidor (no necesariamente el mismo servidor que su aplicación), es muy robusto y proporciona una fidelidad de conversión perfecta. Hace todo lo posible para evitar los problemas de interbloqueo a los que se refiere Microsoft en su artículo de KB.

Para generar o modificar archivos MS-Word, recomiendo usar el Open XML SDK for Microsoft Office gratis. Eric White mantiene un really good Blog al respecto.

Descargo de responsabilidad, trabajé en este producto. Habiendo dicho eso, funciona genial.

1

Debe intentar usar OpenOffice para esto. Es gratuito y admite una amplia gama de conversiones de archivos. Lo he usado para convertir DOC & archivos DOCX a formato HTML con resultados fantásticos.

0

Microsoft PDF de complemento para la palabra parece ser la mejor solución por el momento, pero debe tener en cuenta que no se convierte todos los documentos de texto correctamente a pdf y en algunos casos se verá gran diferencia entre la palabra y la salida pdf. Desafortunadamente no pude encontrar ninguna API que convierta todos los documentos de Word correctamente. La única solución que encontré para garantizar que la conversión fuera 100% correcta fue la conversión de los documentos a través de un controlador de impresora. La desventaja es que los documentos se ponen en cola y se convierten uno por uno, pero puede estar seguro de que el pdf resultante es exactamente como la palabra docuemtn. Yo personalmente preferí usar UDC (convertidor universal de documentos) e instalé Foxit Reader (versión gratuita) en el servidor, luego imprimí los documentos comenzando un "Proceso" y estableciendo su propiedad Verb para "imprimir". También puede usar FileSystemWatcher para establecer una señal cuando la conversión se haya completado.