我正在使用pdfbox 1.8.11和FOP将水印添加到pdf:s。它对大多数输入pdf文件都很有效。然而,我得到了一个问题,当文件是在横向,水印将是90度右旋转。我有类似的问题与可见签名,它是固定的。多亏了sign landscape file中的解决方案。有没有办法让水印旋转起作用?提前感谢!
水印的原始图片为:Up arrow
在FOP水印之后,图像会被旋转:image rotated
发布于 2016-10-24 20:16:07
为回答晚了而道歉。在这里添加“水印”的想法是使用fop apache fop添加一些转换到原始pdf中。你可以从apache fop网站上找到java代码示例和fo模板示例。
在任何情况下,我也将在这里说明这个示例: 1.如何使用fop的java代码
import org.apache.fop.apps.*;
import org.xml.sax.*;
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.sax.*;
import javax.xml.transform.stream.*;
class rendtest {
private static FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
private static TransformerFactory tFactory = TransformerFactory.newInstance();
public static void main(String args[]) {
OutputStream out;
try {
//Load the stylesheet
Templates templates = tFactory.newTemplates(
new StreamSource(new File(args[1])));
//First run (to /dev/null)
out = new org.apache.commons.io.output.NullOutputStream();
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
Transformer transformer = templates.newTransformer();
transformer.setParameter("page-count", "#");
transformer.transform(new StreamSource(new File(args[0])),
new SAXResult(fop.getDefaultHandler()));
//Get total page count
String pageCount = Integer.toString(driver.getResults().getPageCount());
//Second run (the real thing)
out = new java.io.FileOutputStream(args[2]);
out = new java.io.BufferedOutputStream(out);
try {
foUserAgent = fopFactory.newFOUserAgent();
fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
transformer = templates.newTransformer();
transformer.setParameter("page-count", pageCount);
transformer.transform(new StreamSource(new File(args[0])),
new SAXResult(fop.getDefaultHandler()));
} finally {
out.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}https://stackoverflow.com/questions/38507391
复制相似问题