使用 iText7 C# 将 Javascript 添加到 PDF 文件
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());
我正在尝试使用 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());