我正在使用 iTextsharp 库来生成 pdf 并将 pdf 与文档合并。但无法在 pdf 中写入条形码。我收到一个错误
access to the path is denied
但是我已经检查了服务器中文件夹的权限,所有权限都被授予,包括写权限,这个相同的代码以前可以正常工作,但最近不行。但是在本地检查时,它工作得很好。这是因为使用 Itextsharp。帮帮我,伙计们。
生成条形码的代码
iTextSharp.text.pdf.BarcodePDF417 pdf417 = new iTextSharp.text.pdf.BarcodePDF417();
pdf417.CodeRows = 60;
pdf417.CodeColumns = 60;
pdf417.YHeight = 1;
pdf417.SetText(tmpSourceString);
System.Drawing.Image im = pdf417.CreateDrawingImage(System.Drawing.Color.Black, System.Drawing.Color.White);
MemoryStream ms = new MemoryStream();
im.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
System.Drawing.Bitmap newbitmap = new System.Drawing.Bitmap(returnImage);
newbitmap.Save(fileUploadLoc + file_name, ImageFormat.Jpeg);
file_name_new = officer + "_" + "digital_barcode1.Jpeg";
var bmp = Bitmap.FromFile(fileUploadLoc + file_name);
var newImage = new Bitmap(bmp.Width, bmp.Height + 15);
var gr = Graphics.FromImage(newImage);
gr.DrawImageUnscaled(bmp, 0, 0);
gr.DrawString(signed, SystemFonts.CaptionFont, Brushes.White,
new RectangleF(0, bmp.Height, bmp.Width, 0));
将条形码与pdf合并的代码
using (Stream inputPdfStream = new FileStream(file_path + file_name_doc, FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream inputImageStream = new FileStream(fileUploadLoc + file_name_new, FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream outputPdfStream = new FileStream(fileUploadLoc + file_temp, FileMode.Append, FileAccess.Write, FileShare.None))
{
var reader = new PdfReader(inputPdfStream);
PdfReader.unethicalreading = true;
var stamper = new PdfStamper(reader, outputPdfStream);
int numberOfPages = reader.NumberOfPages;
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(inputImageStream);
int pages = get_pageCcount(file_path + file_name_doc);
for (int i = 1; i <= pages; i++)
{
var pdfContentByte = stamper.GetOverContent(i);
image.SetAbsolutePosition(1, 0);
pdfContentByte.AddImage(image);
}
stamper.Close();
inputImageStream.Close();
File.Delete(file_path + file_name_doc);
File.Move(fileUploadLoc + file_temp, file_path + file_name_doc);