【问题标题】:How to convert/add .wmf to .pdf如何将 .wmf 转换/添加到 .pdf
【发布时间】:2017-03-29 05:29:51
【问题描述】:

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

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

谨此, 契卡兹

【问题讨论】:

    标签: c# pdf itext wmf


    【解决方案1】:

    您不需要使用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();
    

    【讨论】:

    • 非常感谢,稍微编辑了您的答案,现在可以完美运行了!亲切的问候, ChekaZ
    猜你喜欢
    • 2013-10-29
    • 1970-01-01
    • 2015-10-23
    • 2011-10-25
    • 1970-01-01
    • 2012-12-26
    • 2010-10-21
    • 1970-01-01
    • 2013-05-16
    相关资源
    最近更新 更多