C# 将jsPDF生成的pdf加密为SharpPDF
我正在使用jsPDF在我的客户端生成pdf,并希望在我的服务器应用程序中使用SharpPDF对其进行加密,但当我尝试将jsPDF传递给SharpPDF时,我发现它无法识别某些字符: 以下是使用jsPDF输出的pdf值,然后将其编码为base 64C# 将jsPDF生成的pdf加密为SharpPDF,c#,pdf,encryption,jspdf,sharppdf,C#,Pdf,Encryption,Jspdf,Sharppdf,我正在使用jsPDF在我的客户端生成pdf,并希望在我的服务器应用程序中使用SharpPDF对其进行加密,但当我尝试将jsPDF传递给SharpPDF时,我发现它无法识别某些字符: 以下是使用jsPDF输出的pdf值,然后将其编码为base 64 var out = doc.output(); var url = 'data:application/pdf;base64,' + out.toString(CryptoJS.enc.Base64); %PDF-1.3 3 0 obj <&
var out = doc.output();
var url = 'data:application/pdf;base64,' + out.toString(CryptoJS.enc.Base64);
%PDF-1.3
3 0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/Contents 4 0 R>>
endobj
4 0 obj
<</Length 9717>>
stream
0.57 w
0 G
BT
/F1 14 Tf
16.099999999999998 TL
0 g
227.46 510.24 Td
(SOME TEXT) Tj
ET
BT
/F3 8 Tf
9.2 TL
0 g
42.52 48.19 Td
错误是令牌“obj”不是预期的。data:application/pdf;base64,%PDF-1.3 3 0对象。。。绝对不是base64编码。我将其更改为并置显示pdf输出,我添加了该部分代码,但现在我尝试不使用它,并且不起作用,现在它说无法识别/pages。我刚刚看到您使用System.IO.file.WriteAllTextD://+data.Texto,data.Valor编写pdf文件,这意味着您将其保存在字符串中。这通常是一个非常糟糕的想法,PDF是二进制数据,将其视为字符串通常会破坏其内容。
System.IO.File.WriteAllText("D://" + data.Texto, data.Valor);
HERE--> PdfDocument document = PdfReader.Open("D://" + data.Texto, "some text");
PdfSecuritySettings securitySettings = document.SecuritySettings;
securitySettings.UserPassword = "user";
securitySettings.OwnerPassword = "owner";