从PDF文件中提取图片,这个也用到了PDFBox。
将图片提取出来,PDF每一页中有多个图片时也可以提取出每个图片。
提取后发现有部分有带透明的图片提取后会有两个图片,一个有透明,一个背景为黑色,这个黑色背景的图片并不需要,要把它删掉。
于是将提取的图片分为两组,一组有透明的,一组没透明的。
再将透明的图片加上黑色背景,后与没透明的那组图片进行比较,相同的即是多余出来带黑色背景的图片,把它删掉,剩下的就是提取所要的图片了。
继续阅读“用PDFBox从PDF中提取图片”
从PDF文件中提取图片,这个也用到了PDFBox。
将图片提取出来,PDF每一页中有多个图片时也可以提取出每个图片。
提取后发现有部分有带透明的图片提取后会有两个图片,一个有透明,一个背景为黑色,这个黑色背景的图片并不需要,要把它删掉。
于是将提取的图片分为两组,一组有透明的,一组没透明的。
再将透明的图片加上黑色背景,后与没透明的那组图片进行比较,相同的即是多余出来带黑色背景的图片,把它删掉,剩下的就是提取所要的图片了。
继续阅读“用PDFBox从PDF中提取图片”
用PDFBox将PDF转图片,将PDF每个页面各自转成其对应图片
用到了一下三个库
pdfbox-1.8.10.jar
commons-logging-1.2.jar
fontbox-1.8.10.jar
下面是例子
继续阅读“用PDFBox将PDF转成图片”
iText 生成PDF在PdfTemplate中设置文字加粗,斜体
由于PdfTemplate继承于PdfContentByte类,可以使用PdfContentByte方法来进行操作
Document doc = new Document(); PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(filepath)); doc.open(); PdfContentByte cb = writer.getDirectContent();
创建template并加到PdfContentByte里,template的状态位置是采用matrix方式来设置
PdfTemplate template = cb.createTemplate(width, height); cb.addTemplate(template, 1f, 0f, 0f, 1f, 0f, 0f);
java itext添加中文文字和设置文字颜色
下面是示例代码
import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.Rectangle; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.BaseColor; public class Test { public static void main(String[] args) { Rectangle pSize = new Rectangle(300, 400); Document doc = new Document(pSize); //创建文档 try { PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream("testpdf.pdf")); doc.open(); BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); //创建文字字体 BaseFont bfc = BaseFont.createFont("D:/ht.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //创建中文的文字字体,自定义字体文件 PdfContentByte cb = writer.getDirectContent(); cb.saveState(); cb.beginText(); cb.moveText(20, 300); //设置文字的位置 cb.setFontAndSize(bf, 12); //设置文字的大小 cb.setColorFill(BaseColor.RED); //设置文字颜色 cb.showText("this is an English test."); //设置文字内容 cb.endText(); cb.restoreState(); cb.saveState(); cb.beginText(); cb.moveText(20, 280); cb.setFontAndSize(bfc, 12); cb.showText("这是一个中文测试。It can also English."); //中文文字的测试 cb.endText(); cb.restoreState(); } catch (DocumentException | IOException e) { e.printStackTrace(); } finally { doc.close(); } } }
以上
java itext生成pdf添加图片
下面是示例代码
import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.Rectangle; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Image; import com.itextpdf.text.pdf.PdfWriter; public class Test { public static void main(String[] args) { Rectangle pSize = new Rectangle(4620, 3572); Document doc = new Document(pSize); //创建文档 try { PdfWriter.getInstance(doc, new FileOutputStream("testpdf.pdf")); doc.open(); Image bgImage = Image.getInstance("bg.png"); //创建图片 bgImage.setAlignment(Image.UNDERLYING); //设置为背景图 bgImage.scaleAbsolute(4620, 3572); //设置图片大小,这里是作背景,跟文档一样大 bgImage.setAbsolutePosition(0, 0); //设置图片位置,x,y的0,0坐标为文档左下角 doc.add(bgImage); //加入图片 Image img = Image.getInstance("1.png"); //创建图片 img.scaleAbsolute((float)164.409, (float)267.457); //设置图片大小 img.setRotationDegrees(0); //设置图片角度,可旋转图片 img.setAbsolutePosition(100, 1000); //设置图片位置,x,y为图片左下角到文档左下角的距离 doc.add(img); } catch (DocumentException | IOException e) { e.printStackTrace(); } finally { doc.close(); } } }
以上