Cómo convertir una página PDF en una imagen e insertarla en un nuevo PDF

 C Programming >> Programación C >  >> Tags >> PDF
Cómo convertir una página PDF en una imagen e insertarla en un nuevo PDF

La solución para cómo convertir una página PDF en una imagen e insertarla en un nuevo PDF
se proporciona a continuación:

Estoy usando Itext 7 para marcar con agua los documentos existentes. Mi documento es:

   PdfDocument pdfDoc = new PdfDocument(new PdfReader(sourceFile), new PdfWriter(destinationPath));

Luego estoy recorriendo las páginas:

var numberOfPages = pdfDoc.GetNumberOfPages();
   for (var i = 1; i <= numberOfPages; i++)
                    {
                        page = pdfDoc.GetPage(i);

...watermark building...
page.AddAnnotation(watermark);

page?.Flush();

pdfDoc.Close();

}

Si bien me gustaría guardar esta página como una imagen en este documento o en un nuevo documento pdf.
Sé que pdfRender está disponible ahora para Java, pero no para C#. ¿Hay alguna manera de guardar el pdf basado en texto en una imagen basada en una leyer? Básicamente, necesito aplanar PDF para obtener todas las capas en una. Por lo tanto, la marca de agua no se pudo eliminar como una capa separada con un software de eliminación de marcas de agua.

SOLUCIÓN::ACTUALIZAR

Tengo la solución ahora. Descubrí que iText no puede hacer lo que quiero (PDFRender está disponible en Java en este momento). Así que usé Apitron en su lugar para generar imágenes a partir de páginas. Y luego estoy usando iText nuevamente para agregar imágenes a mi nuevo documento PDF.
Aquí hay un ejemplo de cómo agregar imágenes con Itext 7:https://www.tutorialspoint.com/itext/itext_adding_image_to_pdf.htm (usando Image =iText.Layout.Element.Image;)
Este es un ejemplo de Apitron para crear imágenes a partir de páginas PDF:https://github.com/apitron/Apitron.PDF.Rasterizer.Samples/tree/master/ConvertPDFtoBitmap

NOTA:Como dicen los comentarios a continuación, la calidad es mala con .png. Así que tal vez sea bueno usar el formato TIFF.