用PDFBox从PDF中提取图片

从PDF文件中提取图片,这个也用到了PDFBox。
将图片提取出来,PDF每一页中有多个图片时也可以提取出每个图片。

提取后发现有部分有带透明的图片提取后会有两个图片,一个有透明,一个背景为黑色,这个黑色背景的图片并不需要,要把它删掉。

于是将提取的图片分为两组,一组有透明的,一组没透明的。
再将透明的图片加上黑色背景,后与没透明的那组图片进行比较,相同的即是多余出来带黑色背景的图片,把它删掉,剩下的就是提取所要的图片了。
继续阅读“用PDFBox从PDF中提取图片”

iText生成PDF在PdfTemplate中设置文字加粗,斜体

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);

继续阅读“iText生成PDF在PdfTemplate中设置文字加粗,斜体”

java itext添加中文文字和设置文字颜色

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示例

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();
		}
	}
}

以上