Я хочу знать, возможно ли дублировать/копировать одно и то же изображение в том же PDF-файле с помощью библиотек iTextSharp.
У меня уже есть изображение для дублирования и создания, это не проблема, но когда я копирую его (с циклом for), изображение не копируется, а только перемещается в новую позицию.
Большое спасибо, Джованни.
Dim documento As New Document(PageSize.A4, MillimetersToPoints(10), MillimetersToPoints(10), MillimetersToPoints(10), MillimetersToPoints(10))
Dim filestream As New FileStream("C:\test.pdf", FileMode.Create, FileAccess.Write, FileShare.None)
Dim Scrittura As PdfWriter = PdfWriter.GetInstance(documento, FileStream)
Dim baseFont As BaseFont = baseFont.CreateFont(baseFont.HELVETICA_BOLD, baseFont.CP1252, baseFont.EMBEDDED)
Dim img As iTextSharp.text.Image
Dim DataEncoder As DataMatrix.net.DmtxImageEncoder
Dim DataEncodeOption As DataMatrix.net.DmtxImageEncoderOptions
Dim DataImg As System.Drawing.Image
Dim Databitmap As Bitmap
Dim BarcodeImage As Bitmap
DataEncoder = New DataMatrix.net.DmtxImageEncoder
DataEncodeOption = New DataMatrix.net.DmtxImageEncoderOptions
DataEncodeOption.SizeIdx = DataMatrix.net.DmtxSymbolSize.DmtxSymbol18x18
DataEncodeOption.Scheme = DataMatrix.net.DmtxScheme.DmtxSchemeAscii
DataEncodeOption.ModuleSize = 1
DataEncodeOption.MarginSize = 1
DataImg = DataEncoder.EncodeImage(My.Forms.AvvioProgramma.MyInfo.Progressivo, DataEncodeOption)
Databitmap = New Bitmap(DataImg)
BarcodeImage = Databitmap
BarcodeImage.Save("C:\prova.jpg")
img = Image.GetInstance("C:\prova.jpg")
documento.Open()
Dim contentByte As PdfContentByte = Scrittura.DirectContent
contentByte.BeginText()
contentByte.SetFontAndSize(baseFont, 12)
contentByte.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Tubotec", posXTitolo, posYTitolo, 0)
img.SetAbsolutePosition(posXDM, posYDM)
contentByte.AddImage(img)
contentByte.ShowTextAligned(PdfContentByte.ALIGN_LEFT, My.Forms.AvvioProgramma.MyInfo.Progressivo, posXPar, posYPar, 0)
contentByte.EndText()
documento.Close()
posXDMиposYDM? И почему вы добавляете контент сPdfContentByte? Вы же не ожидаете, что изображение будет между двумя строками текста, не так ли? (Если это так, ваш код неверен.) Что вы имеете в виду, когда пишете изображение не копируется, а только перемещается в новую позицию? Потому что я вижу, что вы добавляете изображение только один раз. И почему вы не используете последнюю версию iText? Ваш вопрос слишком неясен, чтобы ответить. - person Bruno Lowagie   schedule 11.12.2017PdfContentByte? И почему вы все еще используете старую версию iText? Я мог бы полениться и просто применить политику компании: больше нет добровольной поддержки для всех версий iText до iText 7; если вам нужна поддержка более старой версии, требуется контракт на поддержку с iText Software. - person Bruno Lowagie   schedule 11.12.2017PdfContentByte, почему бы вам просто не использовать таблицу? См. [Как отображать штрих-коды в матричной структуре? ](stackoverflow.com/questions/21981602) и Добавление текста в ячейку таблицы в itext. (И перестаньте говорить мне чепуху! Нет никаких причин, по которым вам не следует обновляться!) - person Bruno Lowagie   schedule 11.12.2017