我正嘗試將圖像添加到現有PDF上每個頁面的頂部。我嘗試過使用PdfStamp,但由於某種原因,當我嘗試從Chrome打印PDF時,我所得到的只是一個黑色頁面。另外Adobe Reader只顯示原始文檔。有沒有人有任何想法如何讓它工作?這是代碼。使用iTextSharp生成PDF
public partial class MakePdf : System.Web.UI.Page
{
public MemoryStream m = new MemoryStream();
protected void Page_Load(object sender, EventArgs e)
{
Document document = new Document(PageSize.LETTER);
Response.ContentType = "application/pdf";
string RESULT = @"C:\Users\maitchison\Documents\Pdf\Service Report Search - 650-10-067 4114.pdf";
PdfReader reader = new PdfReader(RESULT);
PdfStamper stamp = new PdfStamper(reader, m);
try
{
// Set ContentType and create an instance of the Writer.
Response.ContentType = "application/pdf";
PdfWriter writer = PdfWriter.GetInstance(document, m);
writer.CloseStream = false;
// Open Document
document.Open();
int n = reader.NumberOfPages;
int i = 1;
PdfContentByte cb = writer.DirectContent;
PdfContentByte over;
Barcode128 barcode128 = new Barcode128();
string text2 = "650-M5-013";
barcode128.Code = text2;
barcode128.ChecksumText = true;
float x = document.Right;
float y = document.Top;
iTextSharp.text.Image img2 = barcode128.CreateImageWithBarcode(cb, null, null);
img2.SetAbsolutePosition((x - img2.ScaledWidth), (y - img2.ScaledHeight));
while (i <= n)
{
over = stamp.GetOverContent(i);
over.AddImage(img2);
i++;
}
}
catch (DocumentException ex)
{
Console.Error.WriteLine(ex.StackTrace);
Console.Error.WriteLine(ex.Message);
}
// Close document
stamp.Close();
//document.Close();
// Write pdf bytes to outputstream.
Response.OutputStream.Write(m.GetBuffer(), 0, m.GetBuffer().Length);
Response.OutputStream.Flush();
Response.OutputStream.Close();
m.Close();
}
}
}
我其實只是寫了新的代碼,使PDF和Chrome仍然打印出所有的黑色頁面。這是我使用的代碼。 [Code](http://pastebin.com/VUmWfiLN) – MattAitchison 2011-04-01 22:35:09