2016-11-15 10 views
0

Iveはこのサンプルコードを手に入れましたが、Iamは機能しません。私の質問は、.wmfファイルをPDFに変換/追加する方法です。.wmfを.pdfに変換/追加する方法

private void CreatePDF() 
    { 
     Document pdfDoc = new Document(); 
     PdfWriter.GetInstance(pdfDoc, new FileStream(@"path.pdf", FileMode.Create)); 

     byte[] b = File.ReadAllBytes(@"path.wmf"); 

     iTextSharp.text.Image img1 = new ImgWMF(b); 
     pdfDoc.Add(img1); 
     pdfDoc.Close(); 
    } 

Iamは.WMFのうちのバイトを読み、その後PDFの作成者にそれを追加しようとし、それを用いて画像を作成しようとしています。

Iamは私が推測するようにバイトを読み取ることができません。どんな助けもありがたい。

親切よろしく、 ChekaZ

答えて

0

あなたはImgWMFクラスを使用する必要はありません。ステップをスキップしたためコードが機能しません:pdfDocを開いていません。

私はC#の開発者ではないんだけど、これは私があなたのコードを修正する(しよう)する方法を次のとおりです。

Document pdfDoc = new Document(); 
PdfWriter.GetInstance(pdfDoc, new FileStream(@"path.pdf", FileMode.Create)); 
pdfDoc.Open(); 
iTextSharp.text.Image img1 = ImgWMF.GetInstance(@"path.wmf"); 
pdfDoc.Add(img1); 
pdfDoc.Close(); 

GetInstance()方法は、パラメータとして渡すイメージファイルを調べます。これで問題が解決しない場合は、スローされた例外を共有してください。

PDFページのサイズはA4で、画像が表示されない(またはページが大きすぎる)場合があります。その場合、最初に画像を作成して、次のようにPDFを作成する必要があります。

iTextSharp.text.Image img1 = ImgWMF.GetInstance(@"path.wmf"); 
Document pdfDoc = new Document(img1); 
PdfWriter.GetInstance(pdfDoc, new FileStream(@"path.pdf", FileMode.Create)); 
pdfDoc.Open(); 
img1.SetAbsolutePosition(0, 0); 
pdfDoc.Add(img1); 
pdfDoc.Close(); 
+0

ありがとう、あなたの答えは少し編集されました。親切に考えて、ChekaZ – ChekaZ

関連する問題