到目前为止,我已经编写了一些代码,这些代码应该覆盖带有白色矩形的PDF中的文本,该矩形效果很好,但它非常静态。目标是将其设计为更简单的命令行工具。 有没有办法确定PDF(每页上)字符串的位置,字体大小以及从中计算矩形大小/位置的方法? 谷歌搜索了很多,但没有得到令人满意的答案。
使用iText。到目前为止使用的代码发布在下面(打开优化思路)
package evaluate_java;
import java.io.FileOutputStream;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
public class PDFmodifier {
public static void main(String[] args)
{
coverWithRectangle("neu.pdf","output.pdf");
}
public static void coverWithRectangle(String input, String output)
{
try
{
PdfReader reader = new PdfReader(input);
int pages = reader.getNumberOfPages();
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(output));
for(int i=1; i <=pages; i++)
setContent(stamper, i, 80f, 20f, 300f, 20f, BaseColor.WHITE);
stamper.close();
reader.close();
System.out.println("Success.");
}
catch(Exception ex)
{
System.out.print("Failed because: ");
ex.printStackTrace();
}
}
public static void setContent(PdfStamper stamp, int page, Float x, Float y, Float width, Float height, BaseColor col)
{
PdfContentByte content = stamp.getOverContent(page);
content.setColorFill(col);
content.rectangle(x,y,width, height);
content.fill();
}
}