Я попытался несколько способов сделать это, но все равно не могу его получить. Кажется, iTextSharp требует 2-х прохода, чтобы изображение появилось поверх текста. Итак, я пытаюсь сделать это с использованием потоков памяти, но я продолжаю получать ошибки.Использование PDF itextSharp можно поместить изображение поверх текста при создании pdf-документа
Public Function createDoc(ByRef reqResponse As HttpResponse) As Boolean
Dim m As System.IO.MemoryStream = New System.IO.MemoryStream()
Dim document As Document = New Document()
Dim writer As PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(document, m)
document.Open()
document.Add(New Paragraph(DateTime.Now.ToString()))
document.Add(New Paragraph(DateTime.Now.ToString()))
document.Add(New Paragraph(DateTime.Now.ToString()))
document.Add(New Paragraph(DateTime.Now.ToString()))
document.Add(New Paragraph(DateTime.Now.ToString()))
document.Add(New Paragraph(DateTime.Now.ToString()))
document.Add(New Paragraph(DateTime.Now.ToString()))
document.Close()
writer.Flush()
writer.Flush()
'yes; I get the pdf if this is the last statement
'reqResponse.OutputStream.Write(m.GetBuffer(), 0, m.GetBuffer().Length)
'this statment does not work it says the stream is closed
'm.Position = 0
Dim Reader As PdfReader = New PdfReader(m)
'Dim rm As MemoryStream = New MemoryStream(m.GetBuffer(), 0, m.GetBuffer().Length)
Dim PdfStamper As PdfStamper = New PdfStamper(Reader, reqResponse.OutputStream)
Dim cb As iTextSharp.text.pdf.PdfContentByte = Nothing
cb = PdfStamper.GetOverContent(1)
Dim locMyImage As System.Drawing.Image = System.Drawing.Image.FromStream(zproProduceWhiteImageToCovertBarCodeNumbers())
Dim BImage As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(locMyImage, iTextSharp.text.BaseColor.CYAN)
Dim overContent As PdfContentByte = PdfStamper.GetOverContent(1)
BImage.SetAbsolutePosition(5, 5)
overContent.AddImage(BImage)
PdfStamper.FormFlattening = True
PdfStamper.Close()
'rm.Flush()
'rm.Close()
'Dim data As Byte() = rm.ToArray()
'reqResponse.Clear()
'Dim finalMs As MemoryStream = New MemoryStream(data)
'reqResponse.ContentType = "application/pdf"
'reqResponse.AddHeader("content-disposition", "attachment;filename=labtest.pdf")
'reqResponse.Buffer = True
'finalMs.WriteTo(reqResponse.OutputStream)
'reqResponse.End()
'Dim data As Byte() = rm.ToArray()
'reqResponse.OutputStream.Write(data, 0, data.Length)
''Response.OutputStream.Write(m.GetBuffer(), 0, m.GetBuffer().Length);
''Response.OutputStream.Flush();
''Response.OutputStream.Close();
''Response.End();
HttpContext.Current.ApplicationInstance.CompleteRequest()
Return True
End Function
ссылка: Put text on top of an image?
ссылка Seach двигателя: Whiteout текст на PDF-документа, используя изображение, которое имеет тот же цвет, как изображения перекрываются фон PDF с itextpdf itextsharp изображения на вершине текст Whiteout itextsharp место изображение на верхней части текста itextpdf изображение сверху
спасибо, Doug Lubey из Louisiana
Скриншот выше выглядит как [PDF редакции] (http://blogs.adobe.com/security/2009/12/how_to_properly_redact_pdf_fil.html). Надеюсь, это не ваше намерение; даже iText [Sharp] может восстановить текст из созданного таким образом PDF-файла. [Одна ссылка] (http://www.mail-archive.com/[email protected]/msg58936.html) и [еще] (http://www.mail-archive.com/itext- [email protected]/msg57640.html) из списка рассылки, в котором объясняется, что проще использовать другой инструмент для ** правильной ** редакции. (человек, который дал ответы в обеих нитях для Adobe и является экспертом в формате PDF **) – kuujinbo