Q:
Bagaimana menambahkan password di PDF file?
A:
Pertama di butuhkan library yang mengenal PDF file.
Dalam hal ini kita coba menggunakan iTextSharp.
iTextSharp (.net) merupakan library yang di terinspirasi dari iText (java) untuk bekerja dengan pdf file.
Karena ini porting, jadi hanya set class-nya saja yang mirip dan tidak memerlukan java runtime untuk itu. cukup dengan .net saja.
// C#
'using System.IO
'using iTextSharp.text
'using iTextSharp.text.pdf
PdfReader reader = new PdfReader("MyFile.pdf");
Document doc = new Document(reader.GetPageSize(1));
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("MyFile.enc.pdf", FileMode.Create));
writer.Open();
writer.SetEncryption(PdfWriter.STRENGTH40BITS, "pass1", "ownerpass", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
PdfContentByte contentByte = writer.DirectContent;
doc.Open();
for (int i = 1; ic = reader.NumberOfPages; i <= ic; i++) {
doc.NewPage();
contentByte.AddTemplate(writer.GetImportedPage(reader, i), 0, 0);
}
reader.Close();
doc.Close();
writer.Close();
'Imports System.IO
'Imports iTextSharp.text
'Imports iTextSharp.text.pdf
Dim reader As New PdfReader("MyFile.pdf")
Dim doc As New Document(reader.GetPageSize(1))
Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("MyFile.enc.pdf", FileMode.Create))
writer.Open()
writer.SetEncryption(PdfWriter.STRENGTH40BITS, "pass1", "ownerpass", PdfWriter.AllowCopy Or PdfWriter.AllowPrinting)
Dim contentByte As PdfContentByte = writer.DirectContent
doc.Open()
For i As Integer = 1 To reader.NumberOfPages
doc.NewPage()
contentByte.AddTemplate(writer.GetImportedPage(reader, i), 0, 0)
Next
reader.Close()
doc.Close()
writer.Close()