如何 convert/add .wmf 转 .pdf

How to convert/add .wmf to .pdf

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

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

此致, 切卡兹

您不需要使用 ImgWMF class;并且您的代码不起作用,因为您跳过了一个步骤:您没有打开 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();