業務用の作業効率アップのためにExcelVBAを利用して、複数のPDFファイルのページ数と各ページの用紙サイズを取得(アルゴリズムとしては、用紙サイズはmediaboxの情報から、ページ数はmediabox自体の数から取得しています。)、その情報を元に印刷サイズを自動で切り替えて印刷するマクロを作成し、順調に使えていたのですが、昨日PDF情報取得時に、Adobe Readerで読み込んだ場合と異なったページ数・用紙サイズの情報が取得されるPDFファイルがありました。
具体的にはA1サイズで1ページのみのPDFだったのですが、上記のマクロから取得した情報は1ページ目:A4、2ページ目:A1 の計2ページとなっていました。
原因を調べる為テキストエディタでそのPDFを開くと、mediaboxは確かに2つ存在し、その情報も1つ目:[0 0 595 842]、2つ目:A1[0 0 2396 1698]となっているのですが、AdobeReaderでは1つ目のmediaboxの情報は、ページとして扱っていないようです。
恐らくmediaboxの前後の情報も併せて初めてページオブジェクトとして扱われるのでしょうが、恥ずかしながら私ではその当たりの的確な情報を集められませんでした。
どなたかPDFの適切なページ区切り情報をご存知の方はおられないでしょうか。
乱文申し訳ないです。。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
直接の答えじゃないけども
http://www.adobe.com/devnet/acrobat/
みたいなAdobeの公開している技術情報は探してみましたか?
PDFは内部に画像としてPDFを埋め込んだりできるので
単純にMediaBoxでは取得できないように思います.
PSだったら,DSCコメントとEPSにかかってる制限が
手がかりになるんですけどねえ.
開発者向け資料が公開されていることは知っていましたが、基本的には
業務の合間を縫ってこのマクロを作成していたので、英語を翻訳しながら目的の情報を見つけるのは正直あきらめていました。
運がよければ同じような経験がある方からアドバイスをいただけると考えたんですが、せっかくなので上記のAdobeのサイトから少しだけ探してみたところ「PDF Reference」という資料がすぐに都合よく見つかりました。
翻訳しながらすこしずつ読んだのですが、結論としてはMediabox以外にTypeがPageになっており、且つParentを持っていればページオブジェクトと見なして問題なさそうですね。
これから空いた時間でちょこちょこ修正していくつもりです。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
- Visual Basic(VBA) VBAでPDFのアクティブページ番号取得 1 2023/05/25 12:41
- PDF PDFの出力時のファイル名を消したい 3 2022/09/05 01:16
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- WordPress(ワードプレス) WordPressのサイトにPDFをアップロードした際にGoogleなどの検索結果に出ないでほしい 1 2022/08/03 10:44
- PDF PDFファイルを分割するマクロの作り方を教えてください。 2 2022/06/24 11:09
- プリンタ・スキャナー 印刷枚数を減らしたいです。 印刷用紙1枚が4等分になるように、pdfになってる楽譜4ページ分をはめ込 1 2022/08/01 00:58
- PDF AutoCAD図面をPDF fileに変換した際、画像情報やブロック名はわかるのでしょうか。 1 2022/06/03 09:42
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- PDF EXCEL ページを指定してPDF出力するVBAを教えてください。 2 2023/02/09 10:27
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「.movpkg」「.m3u8」ファイル...
-
YahooのIDがロックされてしまい...
-
ローカルの印刷スプールが起動...
-
クリップスタジオ version1.13....
-
クリップスタジオについて パソ...
-
ITの見積もりってなんであんな...
-
PC DJについて 無知なので教え...
-
iTunesを完全にアンインストー...
-
jtrim 1.53cが正常な動きをし...
-
ゆうちょ認証アプリが使えません
-
『ブ』の変換について
-
i Tune でCDからハードディスク...
-
グーグルスプレッドシートで他...
-
WPS Officeって有料ですか?
-
CAE
-
Premiere Proで書き出し速度を...
-
フォルダ内にある全ファイルの...
-
STEAM版BF4が起動しない
-
Windows 11 に対応する作業
-
LDPlayerのマクロの編集方法を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EmEditorの色分け表示法
-
music center for pc以外のフリ...
-
.htaccess にてメンテナンスペ...
-
PDFファイル構造について
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
CloseとDisposeの違い
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
-
【Excel】特定の文字を含むセル...
-
アクセスVBAのMe!と[ ]
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
VBA エンターキーでイベントに...
-
エクセルの画面にユーザーフォ...
-
UPS警告音を止めたい
-
VBの質問#if 0 then ってどう...
おすすめ情報