2016-11-15 16 views
0

J'ai reçu cet exemple de code mais je n'arrive pas à le faire fonctionner. Ma question est de savoir comment convertir/ajouter un fichier .wmf dans un fichier PDF.Comment convertir/ajouter .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 essayant de lire les octets sur la .wmf et créer une image avec qui, en essayant d'ajouter que le créateur de PDF après.

Je ne suis pas capable de lire les octets de cette façon, je suppose. Toute aide appréciée.

Cordialement Bienveillantes, ChekaZ

Répondre

0

Vous n'avez pas besoin d'utiliser la classe ImgWMF; et votre code ne fonctionne pas parce que vous avez sauté une étape: vous n'ouvrez pas le pdfDoc.

Je ne suis pas un développeur C#, mais comment je (essayer de) fixer votre code:

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(); 

La méthode GetInstance() examine le fichier d'image que vous passez comme paramètre. Si cela ne fonctionne pas, veuillez partager l'exception qui est levée. Notez que votre page PDF sera de format A4 et que votre image ne correspondra peut-être pas (ou que la page est trop grande). Dans ce cas, vous devez d'abord créer votre image, et créer votre PDF comme ceci:

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

Merci beaucoup, éditez votre réponse un peu, maintenant cela fonctionne parfaitement! Cordialement, ChekaZ – ChekaZ