读取PDF文件的代码,引用iTextSharp.text.pdf;
private void files_Click(object sender, EventArgs e)
{
OpenFileDialog file = new OpenFileDialog();
file.ShowDialog();
this.file.Text = file.FileName;
filename = file.FileName;
file.Dispose();
StringBuilder text = new StringBuilder();
if (File.Exists(filename))
{
try
{
PdfReader pdfReader = new PdfReader(filename);
int numberOfPages = pdfReader.NumberOfPages;
for (int i = 0; i < pdfReader.NumberOfPages; i++)
{
// Page number starts from 1.
text.Append(iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(pdfReader, i + 1));
}
pdfReader.Close();
}
catch (Exception ex)
{
MessageBox.Show("读取pdf文件问题:" + ex.ToString());
}
}
test.Text = text.ToString();
pdfMD5 = MD5Encrypt32(text.ToString());
test.Text = $"pdf内容:{text.ToString()}内容加密后的MD5值:{pdfMD5}";
}
MD5加密代码:
public static string MD5Encrypt32(string password)
{
//密文
string pwd = string.Empty;
//实例化一个md5对像
MD5 md5 = MD5.Create();
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。
//格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
//X2表示16进制
pwd = pwd + s[i].ToString("X2");
}
return pwd;
}
写入PDF 文件流末尾MD5代码:
private void write_Click(object sender, EventArgs e)
{
if (File.Exists(filename))
{
try
{
FileStream fsw = File.OpenWrite(filename);
byte[] by = Encoding.UTF8.GetBytes($"PDF_MD5:{pdfMD5}{XBRLMD5}");
fsw.Position = fsw.Length;
fsw.Write(by, 0, by.Length);
fsw.Close();
}
catch (Exception ex)
{
MessageBox.Show("pdf添加md5报错:" + ex.ToString());
}
MessageBox.Show("添加MD5成功!");
}
}
XBRL读取:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog file = new OpenFileDialog();
file.ShowDialog();
this.xbrlFile.Text = file.FileName;
XBfilename = file.FileName;
file.Dispose();
string text = File.ReadAllText(XBfilename);
string t = MD5Encrypt32(text);
XBRLMD5 = $"XBRL_MD5:{t}";
test.Text = $"Xbrl内容:{text}内容加密后的MD5值:{t}";
}
XBRL写入:
private void button2_Click(object sender, EventArgs e)
{
try
{
StreamWriter myWrite = File.AppendText(XBfilename);
myWrite.Write($"<!--PDF_MD5:{pdfMD5}-->");
myWrite.Close();
myWrite.Dispose();
}
catch (Exception ex)
{
MessageBox.Show("XBRL添加md5报错:" + ex.ToString());
}
MessageBox.Show("添加MD5成功!");
}