3

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 を返しています。何resourcesが含まれているのかはわかりませんが、残りの変換にとって重要なようです。このコードは PDFsharp サンプル サイトからコピーしました。PDF に問題がある可能性はありますか? Word2010で作りました。

4

1 に答える 1

3

PDF を JPEG に変換し、フリー ソフトウェア ライブラリを使用して変換したい場合は、ImageMagickを検討してください。これはすべての主要なプラットフォームで実行されるため、Windows でも問題ありません。コマンドラインで開始でき、好みの非可逆圧縮レベルを設定できます。

編集: ああ、別の質問で、ImageMagick への .net インターフェイスを使用していることがわかりました。動作させることができれば素晴らしいのですが、convertコマンドを使用するだけの方が簡単な場合があります。

于 2012-07-06T20:55:38.137 に答える