我正在使用iTextSharp将来自microsofts报告查看器的多个pdf连接在一起。以下代码中的page.AddImage(image__1)抛出错误未将对象引用设置为对象的实例。我没有看到什么都没有。我可以通过不同的方式从报表查看器加入报表并添加水印图像吗?
mybytes = MSRptViewer1.LocalReport.Render("PDF", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)
reader = New iTextSharp.text.pdf.PdfReader(mybytes)
numberOfPages = reader.NumberOfPages
currentPageNumber = 0
Dim imageFile As String = Server.MapPath("WaterMark.png")
Dim buffer As Byte() = IO.File.ReadAllBytes(imageFile)
Dim image__1 As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(buffer)
image__1.SetAbsolutePosition(100, 100)
Do While (currentPageNumber < numberOfPages)
currentPageNumber += 1
doc.SetPageSize(PageSize.LETTER)
doc.NewPage()
page = writer.GetImportedPage(reader, currentPageNumber)
page.AddImage(image__1)
rotation = reader.GetPageRotation(currentPageNumber)
If (rotation = 90) Or (rotation = 270) Then
cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(currentPageNumber).Height)
Else
cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0)
End If
Loop
答案 0 :(得分:0)
<?php $data = file_get_contents('https://static1.squarespace.com/static/56c775ad27d4bd3fdb24775d/t/5a8b201324a694d7071662ee/1519067160925/dummy+logo.jpg');
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
?>
此图像转换为base64格式的方法
<?php echo '<div class="company-logo"><img src="'.$base64.'" alt="base" /></div>'; ?>
或
<img src="<?php echo $base64; ?>" alt="base" />
答案 1 :(得分:-1)
我已经要求我的出版商Manning Publications免费提供chapter 6 of my book。我知道本章仅向您展示Java中的示例,但为方便起见,所有示例均为ported to C#。
如果您阅读本章,您会发现您犯了以下错误:
PdfReader
/ PdfWriter
向现有文档添加内容,而不是PdfReader
/ PdfStamper
。如果你想要一个漂亮的水印示例,请查看StampStationery.cs示例中的ManipulatePdf方法。将background.addTemplate()
替换为background.addImage()
以添加图片,而不是从其他PDF获取的背景页面。您还将在此处了解有关将图像用作水印的更多信息:How to add a watermark to a PDF file? PdfReader
/ PdfWriter
来连接现有文档而不是PdfCopy
。通过这样做,您可能面临各种各样的问题:例如:部分网页被截断,链接被删除,注释丢失,......请阅读我对此问题的回答:How to merge documents correctly? PdfImportedPage
是只读的事实。您只能在创建PdfCopy
对象后在PageStamp
的上下文中添加内容。请查看ConcatenateStamp.cs示例。总结:您的问题或多或少与之前在StackOverflow上回答的其他问题(的组合)重复。您似乎从一个不是官方文档来源的源代码中复制/粘贴了一些代码。