[英]Add Javascript to PDF file using iText7 C#
我正在嘗試使用 iText7 庫和 C# 將 javascript 添加到我的 PDF 文件中
目前,這是我的代碼......到目前為止還沒有完成
public FileResult Download(string id)
{
var fileSelect = _context.FileStores.SingleOrDefault(c => c.File_Id == id);
string base64string = Convert.ToBase64String(fileSelect.File_Content, 0, fileSelect.File_Content.Length);
using (MemoryStream stream = new System.IO.MemoryStream())
{
MemoryStream memory = new MemoryStream(fileSelect.File_Content);
BinaryReader BRreader = new BinaryReader(memory);
StringBuilder text = new StringBuilder();
PdfReader reader = new PdfReader(memory);
//FileStream output = new FileStream(@"Manual.pdf", FileMode.Create);
PdfDocument Pdfdoc = new PdfDocument(reader);
Document doc = new Document(Pdfdoc);
PdfAction action = PdfAction.CreateJavaScript("var rightNow = new Date(); " +
"var endDate = new Date('May 03, 2021 10:00:00');" +
"if(rightNow.getTime() > endDate){" +
"app.alert('This Document has expired, please contact us for a new one');" +
"this.closeDoc();}");
reader.Close();
return File(memory, "application/pdf", "ExportData.pdf");
}
我想將這個 javascript 添加到我的 PDF 並在完成添加 Javascript 后下載文件。有沒有人知道如何將 Javascript 添加到 pdf? 謝謝
您可以將 Javascript 片段添加為文檔級OpenAction ,以便在打開文檔時執行:
PdfReader reader = new PdfReader("input.pdf");
PdfWriter writer = new PdfWriter("output.pdf");
PdfDocument Pdfdoc = new PdfDocument(reader, writer);
PdfAction action = PdfAction.CreateJavaScript(
"var rightNow = new Date(); " +
"var endDate = new Date('May 03, 2021 10:00:00');" +
"if(rightNow.getTime() > endDate){" +
"app.alert('This Document has expired, please contact us for a new one');" +
"this.closeDoc();}"
);
Pdfdoc.getCatalog().SetOpenAction(action);
Pdfdoc.Close();
以下代碼對我有用。 可以通過這種方式將多個腳本添加到同一個文檔中。
using var pdfReader = new PdfReader("input.pdf");
using var outputStream = new FileStream("output.pdf", FileMode.Create);
using var pdfWriter = new PdfWriter(outputStream);
using var outputPdfDocument = new PdfDocument(pdfReader, pdfWriter);
var outputJavaScriptNameTree = outputPdfDocument.GetCatalog().GetNameTree(PdfName.JavaScript);
outputJavaScriptNameTree.AddEntry(
"Script1",
PdfAction.CreateJavaScript("app.alert('Hello world!');").GetPdfObject());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.