投稿時間:2006/09/12(Tue) 11:22 投稿者名:しん
Eメール:
URL :
タイトル:PDFファイルの用紙サイズ取得について
初めて投稿させていただきます。よろしくお願いします。
OS XP Pro VB6.0 SP5 現在PDFファイルから印刷時の用紙サイズを読み込むプログラムを作ろうとしています。 PDFにはMediaBox(必ずある筈)、CropBox(ないPDFもある)の情報が入っているので 初めにCropBoxの情報を読みに行き、無い場合にMediaBoxの値を読み込む処理を行う以下の様なものを作ったのですが、 PDFファイル容量が大きくて、CropBoxがない場合に処理に時間が掛かり過ぎて困っています。 なにか処理を早くする方法がないか色々検索をしたのですが、中々良い方法が発見出来ずに悩んでいます。 なにか他に良い方法があればアドバイスをお願い致します。
以下ソース抜粋 intFNo = FreeFile Open "サイズを測りたいpdf" For Binary As #intFNo
blnFindCrp = False blnFindMed = False While Not EOF(intFNo) And Not blnFind strBuf = Input(1, #intFNo) If strBuf = "C" Then strBuf = Input(1, #intFNo) If strBuf = "r" Then strBuf = Input(1, #intFNo) If strBuf = "o" Then strBuf = Input(1, #intFNo) If strBuf = "p" Then strBuf = Input(1, #intFNo) If strBuf = "B" Then strBuf = Input(1, #intFNo) If strBuf = "o" Then strBuf = Input(1, #intFNo) If strBuf = "x" Then ''CropBoxが見つかったらblnFindCrpを真にする blnFindCrp = True Do If IsNumeric(strBuf) Then Exit Do strBuf = Input(1, #intFNo) Loop strSize(i) = strBuf For i = 0 To UBound(strSize) Do strBuf = Input(1, #intFNo) If IsNumeric(strBuf) Or strBuf = "." Then strSize(i) = strSize(i) & strBuf End If Loop While IsNumeric(strBuf) Or strBuf = "." Next i If blnFindCrp = True Then GoTo nops ************中略************ 'このあとにMediaBoxで同じ処理を実行してます
nops: Close #intFNo MsgBox "X1=" & CDbl(strSize(0)) * 0.35 & " Y1=" & CDbl(strSize(1)) * 0.35 & " X2=" & CDbl(strSize(2)) * 0.35 & _ " Y2=" & CDbl(strSize(3)) * 0.35 & vbCrLf & "X=" & (CDbl(strSize(2)) * 0.35 - CDbl(strSize(0)) * 0.35) & " Y=" _ & (CDbl(strSize(3)) * 0.35 - CDbl(strSize(1)) * 0.35)
|