Pdfの分割印字

基本的なことで申し訳ございません。
添付した画像は、PDFが大量の枚数があった場合分割して印字する単位です。
print_unit

これをPDFの印刷画面からページ指定をして該当するプリンターに情報を送信したいです。
ご教示いただければと思います。

複数ファイルのPDFを順次読み込み、印字単位までは何とかできましたが最後で悩んでいます。

少しシステマチックな作りになりますが、15ページごとに印刷したい
(“1-15”、“16-30”、“31-45”・・・の順に文字列が取り出せればいい)のであれば、このような感じでどうでしょうか。

GetPrintPageList.zip (3.8 KB)

あとはページ指定のところにType intoすれば良いと思います。

1 Like

いつもありがとうございます。
以前ご教示していただいたxamlをもとにこのように作成しました。
総ページと印字単位を指定してそれを引数として渡せばよいのでしょうか。Pdf_print_start777.xaml (31.3 KB)
ReadEachFiles777.xaml (19.4 KB)

後勝手ながら、プリンターの設定はUIPATHよりできるのでしょうか。

vb.netでどうすべきか考えています。

開始ページ、終了ページ、1回の印刷ページ、を渡すと、List型でページ番号のリストが戻ります。
たとえば開始が1ページ、終了が20ページ、1回の印刷を15ページ、とすると、“1-15” “16-20” の2つのString型の値が入ったListになります。
なので、印刷の回数だけFor Eachでループを回せば、個々のitemとして上記の文字列が取得できます。

後勝手ながら、プリンターの設定はUIPATHよりできるのでしょうか。

一般論で言えば「余程特殊なプリンターでなければできる」とは思いますが、プリンタードライバの作り(≒機種に依存する)ので明言はできないです。
設定の部分は無理にVBAやVB.NET的な方法でやるよりは、人間が操作するときと同じようにUiPathに操作させるほうが、ワークフローの維持や管理がしやすいと思います。

1 Like

また勉強になりました。
ありがとうございます。

以前ご教示いただいたPDFの分割処理に関してです。
PDFでpasswordがかかっている場合、どのタイミングで解除passwordを入力しPDFの総ページを
把握できるでしょうか。
各stepでtype intoを用いて解除を試みましたがうまくいきません。
改めてご教示いただければ幸甚です。
勝手申し訳ございません。


Pdf_print_start_20180731pass.xaml (30.4 KB)

手元にパスワードつきのPDFがちょっとないので、すぐには検証できないのですが、

Acrobatからデータを引けない場合、こちらが原因の可能性もあるので、適宜「Ctrl+Kを送信してから設定画面を閉じる」を挟んでみてください。

少し冗長になりますが、

  1. AcrobatをPDFファイルを指定せずに開く
  2. Ctrl+K送信
  3. 設定画面を閉じる
  4. 「ファイルを開く」メニューから対象PDFを開く
  5. パスワード入力
  6. データ取得

という流れのほうが確実に動作するかもしれません。

1 Like

ご教示ありがとうございます。
open apllicationよりpdfを開く
CTL+K
フルパスでファイル名を指定しPDFから開く(ALT + f .> enter > type into(ファイル名))
パスワード入力(type into)
最終ページを取得し分割印字
何とかできました。

しかしながら、最終頁の取得で不安定なところがあります。
最終ページを取得できるときとできないときがあります。

matchesのプロパティの記載かと思います。
ご教示いただければ幸甚です。
パスワードなしにした場合には取得できます。

パスワードあり
Pdf_print_start_20180801-2.xaml (41.6 KB)

パスワードなし
Pdf_print_start_passno.xaml (30.1 KB)

matches2