- - PR -
PDFファイルのWeb表示用に最適化の値をIACで取得
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-05-08 15:52
<環境>
Windows XP Professional VS.NET 2005 .NET Framework 2.0 C# 参照設定:Adobe Acrobat 8.0 Type Library <質問内容> PDFファイルの"Web表示用に最適化"の値の取得方法をどなたかご教授頂けないでしょうか? ・エクスプローラの対象PDFファイルを右クリックし、プロパティを開く ・PDFタブを選択 ここにある Web 表示用に最適化 の値をSDKではなくIACで取得したいのです ※SDKは使用許可がありません 以降に示すPDF変換と同様に GetInfo で取得出来ると思ったのですが、 引数のKeyがわからず実現出来ておりません。 どうぞ宜しくお願い致します。 <Source> Acrobat.AcroPDDoc x; string f1; f1 = @"C:\\aaa\\最適化.pdf"; x = new Acrobat.AcroPDDoc(); x.Open(f1); MessageBox.Show("PDF変換 : " + x.GetInfo("Producer").ToString()); <表示内容> PDF変換 : Adobe PDF library 7.77 <参考にしたサイト> http://pdf-file.jugem.jp/?eid=7 http://www.planetpdf.com/forumarchive/131835.asp | ||||
|
投稿日時: 2007-05-08 17:10
PDF関連は扱ったことないけどLinearizedとかぢゃダメかね。
最終手段としてPDFヘッダ部をテキストで読み込むって手も・・・(オススメシマセン) | ||||
|
投稿日時: 2007-05-08 19:26
早速のレスありがとうございます。
>PDF関連は扱ったことないけどLinearizedとかぢゃダメかね。 これの他にもそれらしいので実行したのですが、 catch に入ってこの様なエラーメッセージが出ます。 "オブジェクト参照がオブジェクト インスタンスに設定されていません。" >最終手段としてPDFヘッダ部をテキストで読み込むって手も・・・(オススメシマセン) すみません、理解出来ませんでした。 http://support.adobe.co.jp/faq/qadoc/spitz.nsf/e5b96c611b2e4b2849256d49000a9372/62ec70f457b2951049256e5f003ead32?OpenDocument このあたりの事をおっしゃっているのでしょうか? 「PDTextSelect というオブジェクトがあります。 このオブジェクトは PDF ファイル内の指定のページ・指定のエリア内のテキストコンテンツを保持します。 このオブジェクトの GetText メソッドを利用すると、保持している文字列を取得できます。」 それでこの様にやりかけたのですが(インテリセンスは出るのに)、 Acrobat.AcroPDTextSelect y; y = new Acrobat.AcroPDTextSelect(); 2行目のところでエラーとなりました。 "'Acrobat.AcroPDTextSelectClass' のコンストラクタが定義されていません。" http://homepage1.nifty.com/MADIA/vc/vc_bbs/200307/200307_03070047.html もみてみたのですが、難しくて理解出来ませんでした。 宜しければもう少し教えて頂けないでしょうか? 宜しくお願いします。 | ||||
|
投稿日時: 2007-05-09 15:11
>最終手段としてPDFヘッダ部〜
参考にしないほうがいいと思いますけど一応。 PDFのバージョンによりますけど、対応しているPDFをバイナリエディタでみると 1F辺りから[Linearized 1]ってのが見えるので、バージョンチェック後にStreamで PDFのヘッダ部分を読み込んで判定すればいいのかなと思ったんです。
>PDTextSelect これはPDFのデータ部のテキストを読み込むメソッドだと思うので関係ないです。 ヘッダ部というのはPDF文書のヘッダのことではなく、PDFファイル形式の情報ヘッダのことです。 (自分で書いてて判りにくいですが) 重ねて言いますがPDFの仕様を無視したやりかたなのでオススメしません。 | ||||
|
投稿日時: 2007-05-10 10:16
示して頂いた内容を見てやっと理解できました。
ありがとうございます! Stirling(初めて使いました)で開いて、見る事が出来ました。 プログラムの方はとりあえずわかれば良い程度ですが、これで確認出来ました。 byte[] buffer; buffer = new byte[255]; FileStream fs = new FileStream("パス", FileMode.Open); int FileSize = (int)fs.Length; if (FileSize != 0) { fs.Read(buffer, 0, 255); this.txt.Text = BitConverter.ToString(buffer); } fs.Close(); >重ねて言いますがPDFの仕様を無視したやりかたなのでオススメしません。 そうですね・・・ 最終的な解決方法は再度検討する事にします。 取っ掛かりがわからなかったので、 自力だけだったら頭の中は???だったと思います。 大変助かりました。 ありがとうございました。 |
1