実現したいこと
印刷のXps.XpsDocumentWriterで使用した内容をそのまま画像に落としさらにPDFファイルにしたいのですが、どのような手順がありますでしょうか?
画像に変換してPDFファイルにする理由は、PDFファイル自体内容(データ)の変更・改ざんができるためそれを無効にしたく一旦画像(形式問わず)に変更してPDFファイルを作成したいです。
前提
コードは、部分的ですが、FixedPage を作成し下記で印刷しようと考えています。基本は1ページのみの予定です。
該当のソースコード
C#
1 LocalPrintServer lps = new LocalPrintServer(); 2 // PrintQueue queue = lps.DefaultPrintQueue; 3 PrintQueue queue = lps.GetPrintQueue(printerMei); 4 5 System.Windows.Xps.XpsDocumentWriter writer = PrintQueue.CreateXpsDocumentWriter(queue); 6 PrintTicket ticket = queue.DefaultPrintTicket; 7 8 // 用紙サイズの設定 9 ticket.PageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA4); 10 ticket.PageOrientation = PageOrientation.Landscape; 11 12 writer.Write(doc, ticket);
Windows11 WPF C# VS2019
> 印刷のXps.XpsDocumentWriterで使用した内容をそのまま画像に落としさらにPDFファイルにしたいのですが、どのような手順がありますでしょうか?
1. XPSをPDFにしたいという話ですか?
2. FixedPageを画像にしたいという話ですか?
3. 画像をPDFにしたいという話ですか?
1や3なら何かライブラリの使用を検討されたほうが楽じゃないでしょうか(わたしは特に知見はありません)
[c# pdf library - Google 検索](https://www.google.co.jp/search?q=c%23+pdf+library)
2ならFixedPageもVisualなので簡単です。
[方法: ビジュアルをイメージ ファイルにエンコードする - WPF .NET Framework | Microsoft Learn](https://learn.microsoft.com/ja-jp/dotnet/desktop/wpf/graphics-multimedia/how-to-encode-a-visual-to-an-image-file)
> 画像に変換してPDFファイルにする理由は、PDFファイル自体内容(データ)の変更・改ざんができるためそれを無効にしたく一旦画像(形式問わず)に変更してPDFファイルを作成したいです。
画像にしたところで改ざん防止になるとは思えません(ただの文字より面倒になるとは思いますが)
電子署名をつけるとかのほうが真っ当じゃないですか。
TN8001 様
いつもお世話になります。
> 1や3なら何かライブラリの使用を検討されたほうが
最終的には、それを考えています。たさ、
> 画像にしたところで改ざん防止になるとは思えません
例えば、JPG 画像にしたものをPDFファイルにした時、画像そのものを変更されれば改ざんかもしれませんが、中に含まれるテキストなどは変更不可なので、そういった意味で改ざん不可と考えていました。
ただ、ご指摘いただいた電子署名はどういった内容で改ざん防止になるのでしょうか?
私なりに調べますが、もしわかりやすいサイトなどありましたら教えてください。
とりあえず、「2ならFixedPageもVisualなので簡単です。」を試して一旦画像に落としてみようと思います。
> 例えば、JPG 画像にしたものをPDFファイルにした時、画像そのものを変更されれば改ざんかもしれませんが、中に含まれるテキストなどは変更不可なので、そういった意味で改ざん不可と考えていました。
途中でだれか悪意のあるものに文字を書き換えられてしまう可能性があるのなら、画像だろうと書き換えられますし、ファイル丸ごと入れ替えたりだってできちゃうでしょう。
> ただ、ご指摘いただいた電子署名はどういった内容で改ざん防止になるのでしょうか?
> 私なりに調べますが、もしわかりやすいサイトなどありましたら教えてください。
「電子署名」一般のメリットというか目的は↓でしょう。
> 作成者の保証
> 通常の紙文書に用いる印や署名に相当する、電子文書の作成者の証明が可能な仕組み。
> 内容の同一性
> 電子文書が改竄されていないことの保証、つまり改竄された場合にそれが検出できる仕組み。
[電子署名 - Wikipedia](https://ja.wikipedia.org/wiki/%E9%9B%BB%E5%AD%90%E7%BD%B2%E5%90%8D)
PDFでの実際の用例はggってください^^;
[pdf 電子署名 - Google 検索](https://www.google.co.jp/search?q=pdf+%E9%9B%BB%E5%AD%90%E7%BD%B2%E5%90%8D)
AcrobatやAcrobat Readerでの話ばかりですが、一度試してどう改ざん防止になるのか確認してください。
C#でどう署名をつけるかですが、有償のライブラリならほぼ対応していると思います。
無償のものだとあまりこれといったものが見当たらないです^^;

回答1件
あなたの回答
tips
プレビュー