C# 受密码和水印保护的Itextsharp Pdf
在Itextsharp中是否有任何函数,无论pdf是否具有密码或水印 我已经写了下面的代码,但每次包含(“下载人”)都是动态的C# 受密码和水印保护的Itextsharp Pdf,c#,asp.net,itext,C#,Asp.net,Itext,在Itextsharp中是否有任何函数,无论pdf是否具有密码或水印 我已经写了下面的代码,但每次包含(“下载人”)都是动态的 byte[] bytes = Encoding.ASCII.GetBytes(FilePassword); int page1; if (FilePassword.Equals("")) { PdfReader pdfReader = new PdfReader(CurrentPath, bytes); countWaterMarkFound = 0;
byte[] bytes = Encoding.ASCII.GetBytes(FilePassword);
int page1;
if (FilePassword.Equals(""))
{
PdfReader pdfReader = new PdfReader(CurrentPath, bytes);
countWaterMarkFound = 0;
// Calculate whether watermark exist in the pdf
for (page1 = 1; page1 <= pdfReader.NumberOfPages; page1++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentPageText = PdfTextExtractor.GetTextFromPage(pdfReader, page1, strategy);
if (currentPageText.Contains("Downloaded By"))
{
countWaterMarkFound++;
// adding new WaterMark here
}
}
pdfReader.Close();
}
byte[]bytes=Encoding.ASCII.GetBytes(FilePassword);
int第1页;
if(FilePassword.Equals(“”)
{
PdfReader PdfReader=新PdfReader(当前路径,字节);
countWaterMarkFound=0;
//计算pdf中是否存在水印
用于(第1页=1;第1页水印)
水印不一定在PDF中标记为水印,您不会得到特定的检查
密码
首先,PDF中有几种类型的密码:
- 用户密码和密码
- 所有者密码
如果PDF已加密,并且您使用所有者密码打开它,则您可以在PDF处理器中完全访问PDF。如果您仅使用用户密码打开它,PDF处理器可能会根据PDF规范限制您的访问
PDF规范中提供了一个默认密码值。如果使用该密码作为用户密码对PDF进行加密,则通常无需输入密码或输入空字符串作为密码即可打开该PDF
如果用户密码不是默认密码,则需要输入密码才能打开PDF
因此,
- 如果无法使用
新PdfReader(CurrentPath)
打开PDF,则会对其进行加密;尤其是使用非默认用户密码(或证书)对其进行保护
- 如果可以使用
pdfReader=new pdfReader(CurrentPath)
打开它,请选中pdfReader.isEncrypted()
;如果返回true
,则使用默认用户密码加密PDF;否则不加密
水印不一定在PDF中标记为水印,您不会得到特定的检查。谢谢@mkl。有没有检查PDF是否受密码保护