Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我能';t从现有PDF旋转我的页面_Java_Pdf_Itext - Fatal编程技术网

Java 我能';t从现有PDF旋转我的页面

Java 我能';t从现有PDF旋转我的页面,java,pdf,itext,Java,Pdf,Itext,我刚刚做了一个简单的Java控制台项目,它将内容写入现有的PDF,但我无法旋转页面。我已经尝试过旋转页面尝试stackoverflow上的许多示例,但没有任何效果 我的班级 public class PDfRotate{ private static String workingDir = System.getProperty("user.dir"); private static String FILERIN = workingDir + "/Rin.pdf"; pr

我刚刚做了一个简单的Java控制台项目,它将内容写入现有的PDF,但我无法旋转页面。我已经尝试过旋转页面尝试stackoverflow上的许多示例,但没有任何效果

我的班级

public class PDfRotate{

    private static String workingDir = System.getProperty("user.dir");
    private static String FILERIN = workingDir + "/Rin.pdf";
    private static String FILERIN_INPUT = workingDir + "/Test.pdf";
    private static String FILERIN_OUTPUT = workingDir + "/RinOutput.pdf";
    private static Document document;

    public static void main(String[] args) throws IOException, DocumentException {

        Document document = new Document();
        rotatePdf(document);
        document.close();               
    }

    public static void rotatePdf(Document document) throws DocumentException, IOException{

        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(FILERIN_OUTPUT));

        document.open();
        Paragraph par = new Paragraph("hello");
        document.add(par);

        document.add(PageSize.A4.rotate());

        PdfReader reader = new PdfReader(FILERIN);
        PdfImportedPage page = writer.getImportedPage(reader,1);
        Image instance = Image.getInstance(page);
        document.add(instance);
    }
将页面旋转90° 起初,我理解问题和评论是关于将文档页面(包括其内容)旋转90°

本文第13章的iText示例演示了这一点。联络人代码:

PdfReader reader = new PdfReader(SOURCE);
int n = reader.getNumberOfPages();
int rot;
PdfDictionary pageDict;
for (int i = 1; i <= n; i++) {
    rot = reader.getPageRotation(i);
    pageDict = reader.getPageN(i);
    pageDict.put(PdfName.ROTATE, new PdfNumber(rot + 90));
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
stamper.close();
reader.close();
PdfReader reader=新的PdfReader(源代码);
int n=reader.getNumberOfPages();
内腐;
PdfDictionary pageDict;
对于(int i=1;i将页面旋转90°)
起初,我理解问题和评论是关于将文档页面(包括其内容)旋转90°

这在第13章的iText示例中得到了演示。焦点代码:

PdfReader reader = new PdfReader(SOURCE);
int n = reader.getNumberOfPages();
int rot;
PdfDictionary pageDict;
for (int i = 1; i <= n; i++) {
    rot = reader.getPageRotation(i);
    pageDict = reader.getPageN(i);
    pageDict.put(PdfName.ROTATE, new PdfNumber(rot + 90));
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
stamper.close();
reader.close();
PdfReader reader=新的PdfReader(源代码);
int n=reader.getNumberOfPages();
内腐;
PdfDictionary pageDict;

对于(int i=1;i,由我自己解决

我应该在打开文档之前设置旋转

document.setPageSize(PageSize.A4.rotate());
document.open();
....
document.close();

自己解决

我应该在打开文档之前设置旋转

document.setPageSize(PageSize.A4.rotate());
document.open();
....
document.close();


为什么你要使用
PdfWriter
Document
?如果你已经阅读了文档,你就会知道这是完全错误的。为什么你不使用
PdfStamper
来添加内容呢?因为我在itext开发者网站上发现了这一点,并在开发者网站上的页面上显示这是正确的方法?似乎不是o告诉我您想转到现有页面。如果您想在现有PDF中旋转页面,您应该阅读问题的答案
document.add(PageSize.A4.rotate())
???您想在文档中添加一个A4大小的矩形,旋转成横向?@BrunoLowagie不这么说,这可能会让人们攻击网站并将其添加到某个地方!;))为什么要使用
PdfWriter
文档
?如果您阅读了文档,您就会知道这是完全错误的。你为什么不使用
PdfStamper
来添加内容?因为我在itext开发者网站上发现了这一点,并向我展示了开发者网站上说这是正确的方法的页面?在我看来,您似乎想将其添加到现有页面。如果要在现有PDF中旋转页面,应阅读问题的答案
document.add(PageSize.A4.rotate())???你想在文档中添加一个旋转成横向的A4大小的矩形吗?@BrunoLowagie不要这样说,这可能会让人们攻击网站并将其添加到某个地方!;))这是可行的,但我不想旋转内容,只想旋转我的页面。@Dhn-Huh?什么内容?您正在添加的内容?你必须更清楚!有不同的方法可以旋转内容。告诉我们你到底想要什么。正如我已经说过的,答案可能在文档中可以找到。我刚刚写道,我不想只旋转页面@Brunolowagie的内容。你是说你有一个A4纵向文件,想使其成为A4横向文件,但内容应保持垂直?甚至可能回流以填充整个宽度?如果它不再适合原始页面,请移到下一页?是的,但我会很高兴,如果我可以使它水平,文本的任何多余部分,他们将在@mklThis工作后管理,但我不想旋转内容,只想旋转我的页面。@Dhn-Huh?什么内容?您正在添加的内容?你必须更清楚!有不同的方法可以旋转内容。告诉我们你到底想要什么。正如我已经说过的,答案可能在文档中可以找到。我刚刚写道,我不想只旋转页面@Brunolowagie的内容。你是说你有一个A4纵向文件,想使其成为A4横向文件,但内容应保持垂直?甚至可能回流以填充整个宽度?如果它不再适合原始页面,请移到下一页?是的,但我会很高兴,如果我可以将其用于文本的任何过度,他们将在@mklThat不是您的问题后处理。你说的是一个现存的PDF。使用现有PDF时,不应使用
PdfWriter
Document
。好的,请告诉我应该如何操作@BrunoLowagie Mkl告诉我这太难了,旋转页面而不旋转内容,因为PDF不是一种容易回流的格式,因为它没有段落或锚定图像的概念,它只是画在画布上的东西,画布上有一个窗口。如果你想旋转一个现有的页面,你想让内容回流,那么你问的问题在PDF中几乎是不可能的(一般来说,不限于iText)。你发布了一个回复,声称它解决了你的问题。如果这个答案解决了你的问题,那么你的问题就错了。如果您的问题是正确的,那么您的解决方案并不能解决问题。@Dhn您的回答表明您的问题不在于要更改的现有PDF,而在于您不知道如何设置所需的页面维度的新PDF。如果这确实是你的问题,你解决了它很好,但是你的问题和评论根本没有描述这个问题。所以,你只是说这在Pdf中几乎是不可能的。。。然后我决定阅读我的旧文档,制作另一个新文档,并将我的旧文档作为图像粘贴到其中@那不是你的问题。你说的是一个现存的PDF。使用现有PDF时,不应使用
PdfWriter
Document
。好的,请告诉我应该如何操作@BrunoLowagie Mkl告诉我这太难了,旋转页面而不旋转内容,因为PDF不是一种容易回流的格式,因为它没有段落或锚定图像的概念,它只是画在画布上的东西,画布上有一个窗口。如果你想的话