如何转换/添加.wmf到.pdf

时间:2016-11-15 10:55:04

标签: c# pdf itext wmf

我有这个示例代码,但我没有得到它的工作。我的问题是如何将.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();
    }

我试图读取.wmf中的字节并用它创建一个图像,然后尝试将其添加到PDF创建者。

我无法以我猜的方式读出字节。任何帮助表示赞赏。

请问, ChekaZ

1 个答案:

答案 0 :(得分: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();