2017-10-26 78 views
0

iText7で画像をPDFに変換する方法を教えてください。 Itexsharpには、pdfファイルをイメージに変換するオプションがありました。以下はリンクです。 iTextSharpを使用したPDFへの画像 http://www.c-sharpcorner.com/UploadFile/a0927b/create-pdf-document-and-convert-to-image-programmatically/iText7画像をPDFに変換する

以下は参考リンクを使用して作成されたサンプルコードです。 itext7 pdf to image これは期待どおりに機能しません。 pdfをイメージに変換していません。それは1kbの空白画像を作成しています。

string fileName = System.IO.Path.GetFileNameWithoutExtension(inputFilePath); 
var pdfReader = new PdfReader(inputFilePath); 
var pdfDoc = new iText.Kernel.Pdf.PdfDocument(pdfReader); 
int pagesLength = pdfDoc.GetNumberOfPages()+1; 
for (int i = 1; i < pagesLength; i++) 
{ 
    if (!File.Exists(System.IO.Path.Combine(imageFileDir, fileName + "_" + 
`enter code here`(startIndex + i) + ".png")) && i < pagesLength) 
    { 

     PdfPage pdfPages = pdfDoc.GetPage(i); 
     PdfWriter writer = new PdfWriter(System.IO.Path.Combine(imageFileDir, fileName + "_" + (startIndex + i) + ".png"), new WriterProperties().SetFullCompressionMode(true)); 
     PdfDocument pdf = new PdfDocument(writer); 
     PdfFormXObject pageCopy = pdfPages.CopyAsFormXObject(pdf); 
     iText.Layout.Element.Image image = new iText.Layout.Element.Image(pageCopy); 
    } 
} 
+0

あなたの最初のリンクは、pdfを画像に変換するためにiTextを使用していません。あなたの2番目のリンクが行います。 –

+1

また、 'PdfWriter'クラスを使用して拡張子.pngのファイルを作成しています。 'PdfWriter'インスタンスでPNGファイルを作成することはできません。私はさらに言いたいことがあります:iTextでPNGファイルを作成することはできません。 iText **はPDFをラスターイメージ(.jpg、.png、...など)に変換しません。既存のページに基づいて 'Image'インスタンスを作成する例を誤解しています。これらの例では、XObjectを作成して、それをベクトルイメージ*のように新しいPDF *で再利用することができます。 PDFページをラスタイメージに変換しません。 –

答えて

1

ブルーノを引用:

iTextのは、(.JPGとして、.PNG、...)のラスタ画像にPDFを変換しません。既存のページに基づいてImageインスタンスを作成する例を誤解しています。これらの例では、新しいPDFでベクターイメージのように再利用できるXObjectを作成しています。 PDFページをラスタイメージに変換しません。

私たちがiTextで内部的にテストに使用しているものは、GhostScriptです。 pdfを入力として受け取り、それを一連の画像(ページあたり1画像)に変換します。

関連する問題