使用PdfSharp将PDF转换为Jpeg(资源为空)

时间:2012-07-06 15:52:13

标签: c# .net pdf jpeg pdfsharp

我正在尝试使用PDfSharp将pdf转换为jpeg。

这是我的代码:

PdfSharp.Pdf.PdfDocument document = PdfSharp.Pdf.IO.PdfReader.Open(doc);
            PdfSharp.Pdf.PdfPage page = document.Pages[0];           
            // get resources dictionary
            PdfSharp.Pdf.PdfDictionary resources = page.Elements.GetDictionary("/resources");
            if (resources != null)
            {
                // get external objects dictionary
                PdfSharp.Pdf.PdfDictionary xobjects = resources.Elements.GetDictionary("/xobject");
                if (xobjects != null)
                {
                    ICollection<PdfSharp.Pdf.PdfItem> items = xobjects.Elements.Values;
                    // iterate references to external objects
                    foreach (PdfSharp.Pdf.PdfItem item in items)
                    {
                        PdfSharp.Pdf.Advanced.PdfReference reference = item as PdfSharp.Pdf.Advanced.PdfReference;
                        if (reference != null)
                        {
                            PdfSharp.Pdf.PdfDictionary xobject = reference.Value as PdfSharp.Pdf.PdfDictionary;
                            // is external object an image?
                            if (xobject != null && xobject.Elements.GetString("/subtype") == "/image")
                            {
                                ExportJpegImage(xobject);
                            }
                        }
                    }
                }

        }

行:if (resources != null)返回false。我不确定应该包含哪些资源,但它似乎对转换的其余部分很重要。我从pdfSharp示例站点复制了此代码。我的PDF可能有问题吗?我是用2010年的词汇制作的。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

如果您想将PDF转换为JPEG,并希望使用免费软件库,请考虑ImageMagick。这可以在所有主要平台上运行,因此您可以在Windows上运行。它可以在命令行上启动,您可以设置首选的有损压缩级别。

编辑:啊,我在另一个问题上看到你正在使用.net接口到ImageMagick。如果你可以让它工作,这很好,但你可能会发现使用convert命令更容易!