基本上,我想使用iTextSharp将字符串和条形码组合到一个单元格中.从下面的代码可以看出以下两行:
table.AddCell(tempstring);
table.AddCell(new text.Phrase(new text.Chunk(image39, 0, 0)));
Run Code Online (Sandbox Code Playgroud)
下面列出完整的代码
using text = iTextSharp.text;
using pdf = iTextSharp.text.pdf;
text.Document doc = new text.Document();
pdf.PdfWriter writer = pdf.PdfWriter.GetInstance(doc, new FileStream(pdfgen.sWorkPath + "\\OrderNumber" + txtSellerNumber.Text.ToString() + ".pdf", FileMode.Create));
doc.Open();
pdf.PdfContentByte cb = writer.DirectContent;
pdf.Barcode39 code39 = new pdf.Barcode39();
code39.Code = txtSellerNumber.Text.ToString();
code39.StartStopText = false;
text.Image image39 = code39.CreateImageWithBarcode(cb, null, null);
iTextSharp.text.Table table = new iTextSharp.text.Table(3);
table.BorderWidth = 2;
table.BorderColor = new text.Color(0, 0, 255);
table.Padding = 3;
table.Spacing = 1;
text.Cell cell = new …Run Code Online (Sandbox Code Playgroud) 我想知道我们是否可以突出显示已PDF使用的文本(颜色)itextsharp?
我看到了创建新PDF等示例,同时我们可以应用颜色.我正在寻找可以从PDF获取大量文本并应用颜色并保存的地方.
这是我想要完成的事情,阅读PDF文件,解析文本并根据业务规则突出显示文本.
任何第三方dll建议也有效,这是我正在寻找的第一步opensource iTextsharp library.
我想从PDF文件中提取图像.我尝试使用以下代码,它从PDF中完美地提取了一个jpeg图像.问题是如何从特定页面(例如第1页)或从其他页面中提取图像.我不想阅读整个PDF来搜索图像.
有什么建议?
提取图像的代码:
private void List<System.Drawing.Image> ExtractImages(String PDFSourcePath)
{
List<System.Drawing.Image> ImgList = new List<System.Drawing.Image>();
iTextSharp.text.pdf.RandomAccessFileOrArray RAFObj = null;
iTextSharp.text.pdf.PdfReader PDFReaderObj = null;
iTextSharp.text.pdf.PdfObject PDFObj = null;
iTextSharp.text.pdf.PdfStream PDFStremObj = null;
try
{
RAFObj = new iTextSharp.text.pdf.RandomAccessFileOrArray(PDFSourcePath);
PDFReaderObj = new iTextSharp.text.pdf.PdfReader(RAFObj, null);
for (int i = 0; i <= PDFReaderObj.XrefSize - 1; i++)
{
PDFObj = PDFReaderObj.GetPdfObject(i);
if ((PDFObj != null) && PDFObj.IsStream())
{
PDFStremObj = (iTextSharp.text.pdf.PdfStream)PDFObj;
iTextSharp.text.pdf.PdfObject subtype = PDFStremObj.Get(iTextSharp.text.pdf.PdfName.SUBTYPE);
if ((subtype != null) && subtype.ToString() == iTextSharp.text.pdf.PdfName.IMAGE.ToString())
{
byte[] …Run Code Online (Sandbox Code Playgroud) 我正在编写一个用于可视化测量数据的软件。为此,我使用System.Windows.Forms.DataVisualization.Charting.Chart,我确实知道可以通过chartObj.SaveImage获取显示的图像以将其存储到文件中。
我的软件应具有PDF导出功能,其中应包含图片。为此,我正在使用iTextSharp。同样,我确实知道如何通过iTextSharp.text.Image.GetInstance将存储在文件中的图片放入PDF。
因此,现在我可以拍摄图表的图片,将其放入文件(例如,.jpg文件)中,然后再次加载该文件以将其放入我的PDF中。现在,我正在寻找一个不错的解决方案,以将图片放入PDF而不将其存储到文件中,例如通过Stream或类似的方式。我已经尝试了很长时间,但是直到现在我都没有成功。我想到了类似的东西
Stream imageStream = image of chartObj;
iTextSharp.text.Image picture = iTextSharp.text.Image.GetInstance(imageStream);
Run Code Online (Sandbox Code Playgroud)
据我了解,我无法将chartObj中的图片放入Stream中而不是文件中。如果有这个功能,我想我可以通过iTextSharp.text.Image.GetInstance加载Stream。
有人可以提供一些帮助吗?猜猜并没有那么困难,但是我对C#和iText还是陌生的,所以我在这里有些卡住了。
预先感谢您对此的所有想法!
安娜
我尝试从数据表创建PDF报告.其中一列内容图像.如何从数据表中提取图像并插入PDF表格?我正在使用iTextShap版本5.4.2.0.这是代码:
public void Report(DataTable dt, string output)
{
Document doc = new Document(PageSize.LETTER, 50, 50, 80, 50);
PdfWriter PDFWriter = PdfWriter.GetInstance(doc, new FileStream(output, FileMode.Create));
PDFWriter.ViewerPreferences = PdfWriter.PageModeUseOutlines;
iTextSharp.text.Font hel8 = FontFactory.GetFont(BaseFont.HELVETICA, 8);
doc.Open();
PdfPTable table = new PdfPTable(dt.Columns.Count);
float[] widths = new float[] { 1.2f, 1.2f, 1.2f, 1.2f, 1f, 4f, 1f, 4f };
table.SetWidths(widths);
table.WidthPercentage = 100;
PdfPCell cell = new PdfPCell(new Phrase("NewCells"));
cell.Colspan = dt.Columns.Count;
foreach (DataColumn c in dt.Columns)
{
table.AddCell(new Phrase(c.ColumnName, hel8));
}
foreach (DataRow r in …Run Code Online (Sandbox Code Playgroud) 我正在创建具有不同数量的项目和注释的PDF工作订单.我ColumnText.SetSimpleColumn(phrase, x, y, x2, y2, height, alignment)用来将文本添加到单个列.
我可以获取ColumnText.YLine值,但只有在使用该Go()方法将其应用于ColumnText对象之后.
我想要做的是预先计算最终的YLine值,或者如果YLine超过mjy底部阈值则撤消添加短语,这样我就可以手动添加另一个页面并继续.这可能吗?
我目前正在扩展我们的自定义PDF编写器,以便能够编写指向网站的链接.但是,我有一个问题,因为我找不到任何地方如何将链接放入PDF.
这是什么打印文本:
BT
70 50 TD
/F1 12 Tf
(visit my website!) Tj
ET
Run Code Online (Sandbox Code Playgroud)
我现在需要的是将其包装成一个超链接,以便用户在点击"访问我的网站"时被重定向到我的网站!
知道怎么做吗?我不能使用工具 - 我需要知道如何将正确的PDF命令写入文件,因为很多文档是使用C#动态生成的.目前我正在使用iTextSharp - 但我找不到编写超链接的任何功能,所以我决定添加此功能.
在itextsharp的5.4.2版中,我能够使用:( VB中的片段)
Dim pdfWriter As iTextSharp.text.pdf.PdfCopy
pdfwriter = New iTextSharp.text.pdf.PdfCopy(outputPDFDocument, New FileStream(destfname, FileMode.Create))
pdfWriter.CopyAcroForm(reader)
Run Code Online (Sandbox Code Playgroud)
将表单从一个文档复制到另一个文档.
在5.4.4 CopyAcroForm中不再存在于PdfCopy其他地方或其他任何地方 - 替代方案是什么?
我有一些代码需要3个不同的PDF字节数组并合并它们.这段代码效果很好.问题(有些人)认为每个PDF都被认为是一个完整的页面(如果打印),即使它上面只有4英寸的内容,因此垂直留下7英寸的空白区域.然后将中间文档放入其中,并且可以在其末尾处具有或不具有垂直空白空间.然后页脚也会放在自己的页面上.
这是代码:
byte[] Bytes = rv.LocalReport.Render("PDF", null, out MimeType, out Encoding, out Extension, out StreamIDs, out Warnings);
List<byte[]> MergeSets = // This is filled prior to this code
// Append any other pages to this primary letter
if (MergeSets.Count > 0) {
MemoryStream ms = new MemoryStream();
Document document = new Document();
PdfCopy copy = new PdfCopy(document, ms);
document.Open();
PdfImportedPage page;
PdfReader reader = new PdfReader(Bytes); // read the generated primary Letter
int pages = reader.NumberOfPages;
for (int i = …Run Code Online (Sandbox Code Playgroud) 之前曾问过这个问题(iTextSharp 5.5.6.0 Bug?复选框勾选标记更改)但是没有提供答案,我无法发表评论,因为我是新用户.我有完全相同的问题.
我有一个现有的PDF,我正在以编程方式填写(C#).
表格上有复选框.在构建4.4.x中,它们在选中时呈现复选标记.在构建5.5.5.0和5.5.6.0中,它们现在是十字符号.
不要认为设置属性会产生任何影响,因为已经在pdf中设置了这个.如何获得复选标记而不是十字标记.
我正在使用NuGet提供的最新版本.如果无法解决此问题,可能必须返回到早期版本.