PDF のページ範囲を抽出について

例えば、送付というフォルダ内に、01PDF、02PDF、03PDFというPDFが3つある場合、それぞれの1ページ目のみを抽出したい場合はどのようにしたらよいのでしょうか。
(実際はフォルダ内のPDFは20~30ぐらいはあると思います)
初心者ですので、プロパティの設定なども細かく教えてくださると助かります。
どうぞよろしくお願いいたします。

こんにちは。

抽出の作業自体は表題にもなっている「PDFのページ範囲を抽出」でできると思います。
質問したいのは「フォルダ内にある全部のPDFに繰り返して抽出処理を行いたい」という事でしょうか。

ということであれば、一般的には
1.「送付」フォルダの中にある拡張子PDFのファイルの一覧を取得して変数に設定する
2.1で設定した変数の要素分繰り返してPDFのページ抽出処理を行う
という流れになると思われます。

1.については、Directory.GetFiles(送付フォルダのパス,"*.pdf")
String配列型(Array Of String)の変数に「代入」してやればよいでしょう。
2.については「繰り返し(コレクションの各要素)」で、上記で設定した変数をコレクションとして、
その中に「PDFのページ範囲を抽出」を配置、入力ファイル名にコレクションの要素であるitemを設定してやってみる感じでいかがでしょうか。

1 Like

回答ありがとうございます。

1に関しては問題なく処理できました。
PDFNameという変数に3つのPDF名が入ってきました。

2なのですが、「繰り返し(コレクションの各要素)」の中に「PDFのページ範囲を抽出」を配置、入力ファイル名に itemを設定したのですが、何故か03PDFの分しか抽出してくれません。

自分なりに、"送付フォルダのパス*.pdf"や、PDFNameも入れてみたのですがどれもだめでした。

どなたか教えていただけると助かります。
どうぞよろしくお願いいたします。

おそらくですが、抽出したPDFの出力先のファイルパスが常に同じ場所を示している状態なのではないでしょうか。
(で、上書き上書きしてしまって多分3ファイル目が最後に残っている)
出力先のイメージができないのですが、どんな形にしたいでしょうか?
(入力PDFを上書き、出力用フォルダを用意してそこに元のPDF名で保存、等)

おっしゃる通り、出力ファイル名は同じ場所を入れてます。
出力先のイメージですが、pdfというフォルダを用意してその中に元のpdf名で保存できればと思っています。

たびたび申し訳ありませんが、よろしくお願いいたします。

なるほど。

繰り返し内では入力PDFのファイルパスが変数「item」に格納されているので、
もとのPDFのファイル名はPath.GetFileName(item)で取得できると思います。
で、フォルダパスとファイル名はPath.Combine(フォルダパス文字列, ファイル名文字列)
いい感じに結合してくれます。

ということで、今回の場合、出力先のパスは
Path.Combine(PDF出力フォルダのパス, Path(GetFileName(item)))とかで定義できそうですね。
お試しください。

※クローズ後追記:間違えてましたね、すみません・・!
書かれているとおり、Path.Combine(PDF出力フォルダのパス, Path.GetFileName(item))ですね・・

出力先のパスにPath.Combine(“PDF出力フォルダのパス”,Path.GetFileName(item))で上手くいきました!(嬉)
とても助かりました。
私の悩みにお付き合いくださり、ありがとうございました。

1 Like