es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Guardar archivos Word .docx como PDF a través de .NET: Cómo mantener la calidad de las imágenes.

Estoy utilizando la API de Word .NET desde PowerShell para convertir en masa archivos .docx de Word a PDF en PowerShell de la siguiente manera:

$wordApplication = New-Object -ComObject Word.Application
$doc = $wordApplication.documents.open($infilename, $false)
$doc.SaveAs($outfilename, 17)

Los archivos de Word contienen imágenes con códigos QR, y la calidad de las imágenes es significativamente peor en el PDF que en el archivo .docx original. Esto ocurre tanto en la pantalla como al imprimir (este último es mi caso de uso real).

¿Existe alguna forma de hacer esta conversión (preferiblemente sin herramientas de terceros) de manera que se mantenga la calidad de las imágenes?

¡Gracias de antemano por cualquier ayuda!

Saludos,
eDude

EDIT:
Probé el método Document.ExportAsFixedFormat2, ¡gracias por la sugerencia! Desafortunadamente, ninguna de las opciones parece hacer ninguna diferencia en el resultado final. Para referencia, intenté lo siguiente:

$doc.ExportAsFixedFormat2($outfilename,
                          17,        # formato de archivo (pdf)
                          $false,    # abrir después de exportar
                          0,         # optimizar para (imprimir)
                          0,         # rango (documento completo)
                          1,         # de
                          1,         # a
                          0,         # exportar sin marcado
                          $false,    # incluir propiedades del documento
                          $true,     # mantener IRM
                          0,         # crear marcadores (no)
                          $true,     # etiquetas de estructura del documento
                          $true,     # incluir fuentes faltantes como mapas de bits
                          $false,    # usar ISO19005_1
                          $true      # optimizar para calidad de imagen
)

Pero aún así se desvanece el código QR. Esto ocurre tanto con ISO19005_1 activado como desactivado.

En el archivo de Word, se ve así:

QR Code in the word file

En el PDF, se ve así:

QR Code in the pdf file

Es realmente frustrante, ninguna de las llamadas u opciones parece hacer ninguna diferencia en el resultado final :@

EDIT 2: No pude hacer que funcionara. Al final, modifiqué el código del generador de códigos QR hasta que me generara archivos SVG, que funcionan bien tanto en .docx como en PDF (pantalla e impresora).

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el método SaveAs utilizado en el código de ejemplo está causando una pérdida de calidad de imagen en el archivo PDF convertido. Una posible solución para mantener la calidad de imagen es utilizar en su lugar el método ExportAsFixedFormat2, que proporciona más opciones para la conversión a PDF.

    En el código de ejemplo, reemplaza la línea SaveAs por lo siguiente:

    $doc.ExportAsFixedFormat2($outfilename, 17, $false, 0, 0, 0, 0, $false, $true, $true, 0, $true, $true, $false, $true)
    

    Esto exportará el documento como un PDF en formato fijo con opciones para optimizar la calidad de imagen e incluir etiquetas de estructura del documento. Si esto aún no conserva la calidad de imagen, puede ser necesario utilizar una herramienta de terceros o modificar las imágenes de código QR a un formato que sea más compatible con la conversión a PDF.

Comments are closed.