Замена Ereg с помощью preg (начиная с PHP 5.3.0) была правильным шагом в нашу пользу.
preg_match, который использует синтаксис регулярных выражений, совместимый с Perl, часто является более быстрой альтернативой ereg.
Вы должны знать 4 основных элемента для отображения шаблонов ereg для preg:
'pattern' => '/pattern/'
'patt/ern' => '/patt\/ern/'
Достичь его программно следующим образом: $old_pattern = '<div>.+</div>';
$new_pattern = '/' . addcslashes($old_pattern, '/') . '/';
'pattern' => '/pattern/i'
Итак, если вы используете функцию eregi для случая insenstive matching, просто добавьте 'i' в конец нового шаблона ('/ pattern /').Example: 9(tab) becomes \x9 or alternatively use \t.
Пример Rotate90Degrees использует PdfReader
для получения экземпляра документа, а затем изменяет значение /Rotate
в каждом словаре страниц. Если такой записи нет, добавляется запись /Rotate
со значением 90
:
final PdfReader reader = new PdfReader(source);
final int pagesCount = reader.getNumberOfPages();
for (int n = 1; n <= pagesCount; n++) {
final PdfDictionary page = reader.getPageN(n);
final PdfNumber rotate = page.getAsNumber(PdfName.ROTATE);
final int rotation =
rotate == null ? 90 : (rotate.intValue() + 90) % 360;
page.put(PdfName.ROTATE, new PdfNumber(rotation));
}
Как только это будет сделано, мы используем PdfStamper
для сохранения изменения:
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
reader.close();
Это для iText Java. Для iTextSharp перенос Java на C # легко, поскольку терминология идентична. Измените некоторые более низкие случаи на верхние регистры следующим образом:
PdfDictionary page = reader.GetPageN(1);
page.Put(PdfName.ROTATE, new PdfNumber(90));
В части вопроса этого сообщения есть более или менее идентичный фрагмент кода: Как повернуть страницу PDF с помощью iTextSharp, не вызывая ошибки в Ghostscript?