Quiero convertir páginas PDF en imágenes usando ItextSharp lib.Convertir páginas de archivos PDF en imágenes con itextsharp
tiene alguna idea de cómo convertir cada página en el archivo de imagen
Quiero convertir páginas PDF en imágenes usando ItextSharp lib.Convertir páginas de archivos PDF en imágenes con itextsharp
tiene alguna idea de cómo convertir cada página en el archivo de imagen
iText/iTextSharp puede generar y/o modificar los archivos PDF existentes pero no realizar ninguna prestación que es lo que busca. Recomiendo consultar Ghostscript o alguna otra biblioteca que sepa cómo renderizar un PDF.
puede utilizar ImageMagick convertir PDF a imagen
convertido -Densidad 300 "d: \ 1.pdf" -scale @ 1500000 "d: \ a.jpg"
y dividir pdf puede utilizar iTextSharp
aquí está el código de otros.
void SplitePDF(string filepath)
{
iTextSharp.text.pdf.PdfReader reader = null;
int currentPage = 1;
int pageCount = 0;
//string filepath_New = filepath + "\\PDFDestination\\";
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
//byte[] arrayofPassword = encoding.GetBytes(ExistingFilePassword);
reader = new iTextSharp.text.pdf.PdfReader(filepath);
reader.RemoveUnusedObjects();
pageCount = reader.NumberOfPages;
string ext = System.IO.Path.GetExtension(filepath);
for (int i = 1; i <= pageCount; i++)
{
iTextSharp.text.pdf.PdfReader reader1 = new iTextSharp.text.pdf.PdfReader(filepath);
string outfile = filepath.Replace((System.IO.Path.GetFileName(filepath)), (System.IO.Path.GetFileName(filepath).Replace(".pdf", "") + "_" + i.ToString()) + ext);
reader1.RemoveUnusedObjects();
iTextSharp.text.Document doc = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(currentPage));
iTextSharp.text.pdf.PdfCopy pdfCpy = new iTextSharp.text.pdf.PdfCopy(doc, new System.IO.FileStream(outfile, System.IO.FileMode.Create));
doc.Open();
for (int j = 1; j <= 1; j++)
{
iTextSharp.text.pdf.PdfImportedPage page = pdfCpy.GetImportedPage(reader1, currentPage);
pdfCpy.SetFullCompression();
pdfCpy.AddPage(page);
currentPage += 1;
}
doc.Close();
pdfCpy.Close();
reader1.Close();
reader.Close();
}
}
Puede utilizar Ghostscript para convertir los archivos PDF en imágenes, que utilizarán los siguientes parámetros para convertir el PDF necesarios para la imagen TIFF en múltiples marcos:
gswin32c.exe -sDEVICE=tiff12nc -dBATCH -r200 -dNOPAUSE -sOutputFile=[Output].tiff [PDF FileName]
También se puede utilizar el - q parámetro de modo silencioso puede obtener más información acerca de sus dispositivos de salida de here
Después de que puedo cargar fácilmente los marcos tiff como la siguiente
using (FileStream stream = new FileStream(@"C:\tEMP\image_$i.tiff", FileMode.Open, FileAccess.Read, FileShare.Read))
{
BitmapDecoder dec = BitmapDecoder.Create(stream, BitmapCreateOptions.IgnoreImageCache, BitmapCacheOption.None);
BitmapEncoder enc = BitmapEncoder.Create(dec.CodecInfo.ContainerFormat);
enc.Frames.Add(dec.Frames[frameIndex]);
}
se puede extraer de la imagen de PDF y guardar como JPG aquí es el código de ejemplo necesita itext agudo
public IEnumerable<System.Drawing.Image> ExtractImagesFromPDF(string sourcePdf)
{
// NOTE: This will only get the first image it finds per page.
var pdf = new PdfReader(sourcePdf);
var raf = new RandomAccessFileOrArray(sourcePdf);
try
{
for (int pageNum = 1; pageNum <= pdf.NumberOfPages; pageNum++)
{
PdfDictionary pg = pdf.GetPageN(pageNum);
// recursively search pages, forms and groups for images.
PdfObject obj = ExtractImagesFromPDF_FindImageInPDFDictionary(pg);
if (obj != null)
{
int XrefIndex = Convert.ToInt32(((PRIndirectReference)obj).Number.ToString(CultureInfo.InvariantCulture));
PdfObject pdfObj = pdf.GetPdfObject(XrefIndex);
PdfStream pdfStrem = (PdfStream)pdfObj;
PdfImageObject pdfImage = new PdfImageObject((PRStream)pdfStrem);
System.Drawing.Image img = pdfImage.GetDrawingImage();
yield return img;
}
}
}
finally
{
pdf.Close();
raf.Close();
}
}
"ImageMagick no puede manejarse archivos PostScript y PDF y por su propia cuenta. Para esto, utiliza un software de terceros llamado Ghostscript como 'delegado'. " http://stackoverflow.com/a/6599718/893350 –