CSMemo032

[GO BACK]

iTextSharpで時限式PDF

期限の日がくると読めなくなるPDFを作ろうという試み。
iTextSharpを使用する。
方法が2種類くらいあるらしいけど、これはJavaScriptを使う方式。

  • 参考
  • 問題点
    • JavaScriptをOFFにすると機能しなくなる。この解決方法は参考にしたサイトの2番目にあり。
      • 要は普段は目隠しをかけておいて、JavaScriptが機能するとその目隠しが取り払われるようにすればよい、ということ。
    • PCのシステム日付を操作して未来日にしてしまえば、無力化できる。
       private void button1_Click(object sender, EventArgs e)
       {
           string filename = @"C:\temp\00000.pdf";

           Document doc = new Document();
           PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(filename, FileMode.OpenOrCreate));

           doc.Open();
           doc.Add(new Paragraph("Hello iTextSharp"));

           string javaScript = @"
var limitDate = '2012/06/14'; //有効期限
var d = new Date(); // 今日の日付
var s = 'yyyy/mm/dd'; // 書式
if (limitDate < util.printd(s, d)) {
    app.alert('Limit date is ' + limitDate + '.');
    this.closeDoc(true);
} else {
    app.alert('OK');
}
";
           PdfAction action = PdfAction.JavaScript(javaScript, writer);
           writer.SetOpenAction(action);

           doc.Close();
           writer.Close();
       }
最終更新:2012年06月14日 15:10