Java iTextpdf背景仅设置为可用文本
以下是我使用iText从Java生成PDF的代码:Java iTextpdf背景仅设置为可用文本,java,itext,pdf-generation,Java,Itext,Pdf Generation,以下是我使用iText从Java生成PDF的代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Chunk; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentExcep
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Font.FontFamily;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
public class ChunkBackground {
public static final String DEST = "C:\\test.pdf";
public static void main(String[] args) throws IOException,
DocumentException {
File file = new File(DEST);
file.getParentFile().mkdirs();
new ChunkBackground().createPdf(DEST);
}
public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
Font f = new Font(FontFamily.HELVETICA, 8.5f, Font.BOLD, BaseColor.WHITE);
Chunk c = new Chunk("FOR EMPLOYMENT WITH XXXX YYYY XXXXX", f);
c.setBackground(BaseColor.BLACK);
Paragraph p = new Paragraph();
p.add(c);
document.add(p);
document.close();
}
}
以下是生成的PDF:
如何设置背景宽度而不考虑文本宽度?我要做的是将区块包含在一个100%宽度的PdfTable中,如下所示:
Font f = new Font(FontFamily.HELVETICA, 8.5f, Font.BOLD, BaseColor.WHITE);
Chunk c = new Chunk("FOR EMPLOYMENT WITH XXXX YYYY XXXXX", f);
PdfPTable table = new PdfPTable(1);
PdfPCell cell = new PdfPCell(new Phrase(c));
cell.setBackgroundColor(BaseColor.BLACK);
table.addCell(cell);
table.setWidthPercentage(100);
document.add(table);
document.close();
输出:
谢谢@MaVRoSCy,这真的很有帮助,我想要的就是它。