そんなことを自作のプログラムからやりたいよ。と考えた。
軽くググって、iTextの存在を知る。JavaやC#で作られたライブラリのようです。
早速、ダウンロード。
ダウンロードしたファイルの中には、たくさんのZIPファイルがありました。
とりあえず、dll-coreのみ解凍します。
今回は、Visual Studio 2008 から使ってみました。
書いたコードは、こちらになります(いろいろ端折ってますけどね)。
// まずはpdfを読み込み
iTextSharp.text.pdf.PdfReader pr =
new iTextSharp.text.pdf.PdfReader(@"c:\work\doc.pdf");
// pdf のドキュメントを生成
iTextSharp.text.Document doc =
new iTextSharp.text.Document(pr.GetPageSize(1));
// pdfのライターを作成・オープンし、セキュリティの設定をします。
iTextSharp.text.pdf.PdfWriter pw =
iTextSharp.text.pdf.PdfWriter.GetInstance(
doc, new System.IO.FileStream(
@"c:\\work\doc.enc.pdf",
FileMode.OpenOrCreate));
pw.Open();
pw.SetEncryption(iTextSharp.text.pdf.PdfWriter.STRENGTH128BITS,
"readpass",
"writepass",
iTextSharp.text.pdf.PdfWriter.ALLOW_COPY |
iTextSharp.text.pdf.PdfWriter.ALLOW_PRINTING);
doc.Open();
iTextSharp.text.pdf.PdfContentByte pcb = pw.DirectContent;
for (int i = 1; i < pr.NumberOfPages; i++)
{
doc.NewPage();
iTextSharp.text.pdf.PdfImportedPage pip = pw.GetImportedPage(pr, i);
pcb.AddTemplate(pip, 0, 0);
}
(後片付けも必要ですよ)
意外とお手軽に出来ました。iText使えば、それなりにpdfファイルをいじって楽しめそうです。
ちなみにiTextフリー版のライセンスは、AGPLv3です。
本内容は、以下のページを参考にさせていただきました。
http://niyodiary.cocolog-nifty.com/blog/2009/01/aspnetpdf-f0f5.html
ちなみにiTextフリー版のライセンスは、AGPLv3です。
本内容は、以下のページを参考にさせていただきました。
http://niyodiary.cocolog-nifty.com/blog/2009/01/aspnetpdf-f0f5.html
0 件のコメント:
コメントを投稿