在WinRT中使用图像创建PDF文件

时间:2013-03-21 14:42:23

标签: pdf windows-8 windows-runtime pdf-generation

如何从WinRT中的图像列表创建PDF文件。我在这里发现了类似于Windows Phone 8的东西(“Converting list of images to pdf in windows phone 8”)但是我正在寻找Windows 8的解决方案。如果有任何了解这一点,请与我分享您的想法。

4 个答案:

答案 0 :(得分:1)

尝试http://jspdf.com/

这应该适用于WinJS,但我还没有测试过。在XAML应用程序中,您可以尝试使用启用了jsPDF的页面托管Web浏览器控件。

答案 1 :(得分:0)

ComponentOne现已发布了与Windows Phone for Windows Runtime相同的PDF库。当然,它不是开源的。

答案 2 :(得分:0)

Amyuni PDF Creator for WinRT(商业图书馆)可用于此任务。您可以通过创建类AmyuniPDFCreator.IacDocument的新实例来创建新的PDF文件,然后使用方法AddPage添加新页面,并使用方法IacPage.CreateObject将图片添加到每个页面。

C#中用于向页面添加图片的代码如下所示:

public IacDocument CreatePDFFromImage()
{
    IacDocument pdfDoc = new IacDocument();
    // Set the license key
    pdfDoc.SetLicenseKey("Amyuni Tech.", "07EFCD0...C4FB9CFD");
    IacPage targetPage = pdfDoc.GetPage(1); // A new document will always be created with an empty page

    // Adding a picture to the current page
    using (Stream imgStrm = await Windows.ApplicationModel.Package.Current.InstalledLocation.OpenStreamForReadAsync("pdfcreatorwinrt.png"))
    {
        IacObject oPic = page.CreateObject(IacObjectType.acObjectTypePicture, "MyPngPicture");
        BinaryReader binReader = new BinaryReader(imgStrm);
        byte[] imgData = binReader.ReadBytes((int)imgStrm.Length);
        // The "ImageFileData" attribute has not been added yet to the online documentation
        oPic.AttributeByName("ImageFileData").Value = imgData;
        oPic.Coordinates = new Rect(100, 2000, 1200, 2000);
    }
    return pdfDoc;
}

免责声明:我目前是图书馆的开发人员

对于“开源”替代方案,使用许多可用的开源库之一创建PDF文件的rely on a web service可能更好。

答案 3 :(得分:-2)

我认为如果您想将图片(.jpg)文件转换为PDF文件,这可能对您有所帮助。 它在我的实验室工作。

string source = "image.jpg";
  string destinaton = "image.pdf";

  PdfDocument doc = new PdfDocument();
  doc.Pages.Add(new PdfPage());
  XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]);
  XImage img = XImage.FromFile(source);
  xgr.DrawImage(img, 0, 0);
  doc.Save(destinaton);
  doc.Close();

感谢。