0

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

4

1 回答 1

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();
于 2016-11-15T11:00:57.897 回答