我有一个加密的PDF文档。在加密过程中,代码在写入文件之前嵌入到文件流的末尾。
此PDF文件稍后会被解密,并且可以在任何PDF查看器中查看详细信息。
问题是嵌入式代码在解密的PDF中也可见,需要删除。
我正在寻找解密PDF文档,删除嵌入的文档代码,然后将其保存为文件名。
//Reading the PDF
Encoding enc = Encoding.GetEncoding("us-ascii");
while ((read = cs.Read(buffer, 0, buffer.Length)) > 0)
{
System.Text.Encoding.UTF8.GetString(buffer);
x = x + enc.GetString(buffer);
}
//Remove the code
x = x.Replace("CODE","");
//Write file
byte[] bytes = enc.GetBytes(x);
File.WriteAllBytes(@filePath, bytes);
当生成原始文件时,它似乎使用不同的编码器,因为原始文件的第一行读取%PDF-1.6%andÏ并且在解码文件上%PDF-1.6%????。
我已经尝试了ascii,us-ascii,UTF8和Unicode,但是在删除嵌入式CODE后,文件由于损坏而停止打开。请注意,嵌入的代码位于PDF %% EOF标记之后的原始文件中。
有没有人有任何想法?