2016-07-11 42 views
1

私はプログラミング作業をしています。どこで私は無料のライブラリやコマンドラインのプログラムを使用してPDFファイルをC#で画像に変換する必要があります。c#とGhostscriptを使ってpdfをイメージに変換する

これまでのところ、Ghostscriptを使用して変換すると、それが画像の中央に8赤いボックスを作成することを除いて動作します:PDFの内容は唯一の純粋な白ですが、なぜ私は8を持っているん

をイメージの赤いボックス?私は何を間違えたのですか?ここで

コードです:ありがとう、ここ

string outputImagesPath = null; 


string inputPDFFile = null; 
inputPDFFile = @"C:\Users\user\cover.pdf"; 
outputImagesPath = @"C:\user\Desktop\1.jpg"; 
string ghostScriptPath = @"C:\Users\gswin32.exe"; 

String ars = "-o" + outputImagesPath+ "%03d.png -sDEVICE=jpeg -dJPEGQ=100 " + inputPDFFile; 
Process proc = new Process(); 
proc.StartInfo.FileName = ghostScriptPath; 
proc.StartInfo.Arguments = ars; 
proc.StartInfo.CreateNoWindow = true; 
//proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.Start(); 
string strOutput = proc.StandardOutput.ReadToEnd(); 
Console.WriteLine(strOutput); 
proc.WaitForExit(); 

は、PDFのリンクですhttps://drive.google.com/open?id=0B0auNx4EZsCUUkFHWGR4MjV5NzA

+0

あなたのエラーは、ここでは+ + outputImagesPath + "%03d.png'だと思いますが、' + outputImagesPath + "%d.jpeg'ですか? – lokusking

答えて

0

これは行方不明のフォントやCIDFontによって引き起こされるほとんどの場合、矩形は.notdefですグリフが見つからない場合に使用されるグリフ。もちろん、元のPDFファイルを見ることなく伝えることはできません。

しかし、Ghostscriptのバックチャンネルを確認しても、Artifex製品ではないのでGhostscript.NETでこれを行う方法はわかりません。グリフが見つからない場合の警告が表示されます。

さらに見ることができますが、PDFファイルを利用できるようにする必要があります。使用しているGhostscriptのバージョンを知ることも役立ちます。

+0

私はpdfファイルをアップロードしました。手伝ってくれませんか。ありがとうございます – askquestionzero

+0

基本的に、あなたのファイルは非常に複雑すぎます。圧縮されていないファイルのサイズが4.2 MBになるような複数のフォームと偽の透過性を含んでいます。フォームの1つに "(3 '\)3' \) 'HPR'HPR)Tj "という文字が含まれています。問題のフォントは埋め込まれたCIDFontであり、使用中のCMapはこれらをフォントに存在しないグリフにマッピングします。したがって、.notdefの結果。基本的に、あなたのPDFファイルは非常に非効率的であるとして壊れています。これを「修正」する唯一の方法は、ファイルからテキストを削除することです。 – KenS

+0

ところで、Ghostscriptはオープンソースではありませんが、それは全く同じことではありません。ライセンスされているAGPLの条項を遵守していることを確認してください。 – KenS

関連する問題