Я устанавливаю поле для pdf и проверяю, превышает ли содержимое страницы поле.
Я легко могу это сделать, если содержимое страницы представляет собой просто текст.
Вот что я делаю:
Я использую TextMarginFinder
. Я устанавливаю значения left margin
в формате PDF в зависимости от размера книги. и проверьте с помощью finder.getLlx();
, так как finder.getLlx();
даст мне самую левую позицию текста на этой странице.
TextMarginFinder finder;
if(leftmar>=finder.getLlx())
{
errormargin=1; //left margin error
System.out.println("Page: "+i+"Margin Error:LeftMArginError ");
}
Но это не работает, если на странице есть изображение. Хотя изображение выходит за пределы поля, я не получаю ошибку с приведенным выше кодом, поскольку функция finder.getLlx();
работает только для текстов.
Два вопроса:
1) При просмотре страниц в формате PDF, если на этой странице есть изображение, как я могу проверить, содержит ли эта конкретная страница изображение?
2) Если он содержит изображение, как мне получить его крайние положения?
Обновить после mkl
предложения
if(leftmar>=finder.getLlx())
{
errormargin=1; //left margin error
System.out.println("finder.getLlx() value ="+finder.getLlx()+", leftmar Value="+leftmar);
}
if(rightmar<= finder.getUrx()){
errormargin=1; //right margin error
System.out.println("finder.getUrx() value ="+finder.getUrx()+", rightmar Value="+rightmar);
}
if(margintop >= finder.getUry()){
errormargin=3; //top margin error
System.out.println("finder.getUry() value ="+finder.getUry()+", margintop Value="+margintop);
}
if(marginbottom >= finder.getLly()){
errormargin=3; //bottom margin error
System.out.println("finder.getLly() value ="+finder.getLly()+", marginbottom Value="+marginbottom);
}
TextMarginFinder
. Рассмотрите возможность использования MarginFinder вместо этого класс, используемый в этом ответе. Этот класс также рассматривает растровые изображения и векторную графику; однако для последних он находится в состоянии проверки концепции. - person mkl   schedule 04.09.2015TextMarginFinder
(я полагаю, вы имеете в виду тот, что из банки iText). Вы можете просто использовать классMarginFinder
в качестве замены. Если это не работает для вас, покажите свой код (работает дляTextMarginFinder
), тогда мы сможем настроить его для вашего варианта использования. - person mkl   schedule 04.09.2015getUrx()
дает мне всю ширину, чего не должно быть. - person Abhinav   schedule 04.09.2015getUrx
должен дать вам координату x самой правой части содержимого. Если в вашем случае это доходит до правого конца страницы, то, вероятно, какой-то контент идет так далеко. Например. некоторые программы сначала рисуют белый прямоугольник, покрывающий всю страницу. Так ли это или что-то более тонкое, я не могу сказать без образца PDF. - person mkl   schedule 04.09.2015getUrx
, - это координата x справа налево, мне просто нужно было сделать небольшое вычитание из моего pdfwidth
сgetUrx()
и сравнить его с моим значением поля. Большое спасибо за ваш класс :) - person Abhinav   schedule 05.09.2015