Перенос вашего кода на Aspose.PDF для Java 2.5.0
Подробности
С выпуском Aspose.PDF для Java 2.5.0 произошло много изменений в структуре API и конструкции классов. Большинство названий членов классов обновлены, некоторые существующие члены классов удалены, а также добавлено несколько методов и свойств в существующие классы. Чтобы дать вам краткий обзор изменений, мы рассмотрим следующий простой код, основанный на версиях Aspose.PDF для Java, опубликованных ранее версии 2.5.0.
В этом простом коде мы добавим гиперссылку и ссылку на страницу в том же PDF-документе.
import com.aspose.pdf.elements.*;
com.aspose.pdf.License lic = new com.aspose.pdf.License();
try {
lic.setLicense(new FileInputStream(new File("Aspose.Total.Java.lic")));
} catch (Exception e)
{
System.out.println(e.getMessage());
}
//Создаем объект Pdf, вызывая его пустой конструктор
Pdf pdf1 = new Pdf();
//Создаем секцию в объекте Pdf
Section sec1 = pdf1.getSections().add();
//Создаем текстовый абзац с привязкой к секции
Text text1 = new Text(sec1);
//Добавляем текстовый абзац в коллекцию абзацев секции
sec1.getParagraphs().add(text1);
//Добавляем текстовый сегмент в текстовый абзац
Segment segment1 = text1.getSegments().add("this is a local link");
//Устанавливаем текст в текстовом сегменте подчеркнутым
segment1.getTextInfo().setUnderLine(true);
//Устанавливаем тип ссылки текстового сегмента как Local
//Назначаем id нужного абзаца в качестве целевого id для текстового сегмента
segment1.setHyperLink(new HyperLinkToLocalPdf("product1"));
//Создаем текстовый абзац, который будет связан с текстовым сегментом
Text text3 = new Text(sec1,"product 1 info ...");
//Добавляем текстовый абзац в коллекцию абзацев секции
sec1.getParagraphs().add(text3);
//Устанавливаем этот абзац первым, чтобы он отображался на отдельной
//странице в документе
text3.setFirstParagraph(true);
//Устанавливаем id этого текстового сегмента как "product1"
text3.setID("product1");
// сохраняем файл PDF
FileOutputStream out = new FileOutputStream(new File("UpdateOfCode_Test.pdf"));
pdf1.save(out);
Когда используется версия Aspose.PDF для Java ранее 2.5.0, код может успешно выполняться, и результирующий PDF-документ, содержащий гиперссылку на страницу внутри того же документа, может быть сгенерирован. Но когда тот же код компилируется с версией 2.5.0, вы заметите ряд ошибок, потому что произошли изменения в членах класса, а также некоторые методы в классах были удалены. Теперь давайте начнем с модификации кода для версии 2.5.0
Используйте `import aspose.pdf.*`; вместо `import com.aspose.pdf.elements.*`; чтобы включить пакет.
Для инициализации лицензии, пожалуйста, обновите ваш существующий код с
com.aspose.pdf.License lic = new com.aspose.pdf.License();
try
{
lic.setLicense(new FileInputStream(new File("Aspose.Total.Java.lic")));
}
на
aspose.pdf.License lic = new aspose.pdf.License();
try
{
lic.setLicense(new FileInputStream(new File("Aspose.Total.Java.lic")));
}
**TextInfo** больше не содержит метод **setUnderLine(...)**. Пожалуйста, попробуйте использовать **TextInfo.setIsUnderline(...)** ** вместо этого **.**
Класс с именем **HyperLinkToLocalPdf** был удален. Поэтому, пожалуйста, обновите ваш существующий код, например
//Установите тип ссылки текстового сегмента на Local
//Назначьте id нужного абзаца как целевой id для текстового сегмента
segment1.setHyperLink(new HyperLinkToLocalPdf("product1"));
на
segment1.getHyperlink().setLinkType(HyperlinkType.Local);
segment1.getHyperlink().setTargetID("product1");
Имя метода **setFirstParagraph** удалено из класса Text.
Так что для отображения текстового сегмента на новой странице, вам нужно создать новый объект Section и добавить текстовый объект в вновь созданный раздел. Так как по умолчанию каждый раздел отображается на новой странице, нет необходимости вызывать метод типа **sec2.setIsNewPage(true**)**;
## Обновленный метод сохранения
Метод сохранения в классе Pdf, который использовался с объектом FileOutputStream в качестве аргумента, был удален. В новой версии вы можете использовать любой из следующих перегруженных методов сохранения.
- save(BasicStream stream)
- save(java.lang.String pdfFile)
- save(java.lang.String fileName, SaveType saveType, aspose.pdf.HttpResponse response)
После внесения всех вышеуказанных изменений, при использовании Aspose.PDF для Java 2.5.0, код будет скомпилирован и выполнен без вывода сообщений об ошибках. Полный обновленный кодовый фрагмент указан ниже.
```java
import aspose.pdf.*;
aspose.pdf.License lic = new aspose.pdf.License();
try {
lic.setLicense(new FileInputStream(new File("Aspose.Total.Java.lic")));
} catch (Exception e)
{
System.out.println(e.getMessage());
}
try {
//Создаем объект Pdf, вызывая его пустой конструктор
Pdf pdf1 = new Pdf();
//Создаем раздел в объекте Pdf
Section sec1 = pdf1.getSections().add();
//Создаем текстовый абзац с ссылкой на раздел
Text text1 = new Text(sec1);
//Добавляем текстовый абзац в коллекцию абзацев раздела
sec1.getParagraphs().add(text1);
//Добавляем текстовый сегмент в текстовый абзац
Segment segment1 = text1.getSegments().add("this is a local link");
//Устанавливаем текст в текстовом сегменте как подчеркнутый
segment1.getTextInfo().setIsUnderline(true);
//Устанавливаем тип ссылки текстового сегмента как Local
//Назначаем id желаемого абзаца в качестве целевого id для текстового сегмента
segment1.getHyperlink().setLinkType(HyperlinkType.Local);
segment1.getHyperlink().setTargetID("product1");
// добавляем новый раздел, который будет содержать текстовый объект с ID "Product 1"
Section sec2 = pdf1.getSections().add();
//Создаем текстовый абзац, который будет связан с текстовым сегментом
Text text3 = new Text(sec1,"product 1 info ...");
//Добавляем текстовый абзац в коллекцию абзацев раздела
sec2.getParagraphs().add(text3);
//Устанавливаем id этого текстового сегмента как "product1"
text3.setID("product1");
// сохраняем файл PDF
pdf1.save("UpdateOfCode_Test.pdf");
}catch(Exception e)
{
System.out.println(e.getMessage());
}
Заключение
В вышеуказанной теме мы объяснили некоторые из классов и методов, которые были изменены в новом выпуске. Для получения полного списка всех классов и их членов, пожалуйста, посетите Aspose.PDF для Java API Reference
Чтобы узнать больше об Aspose и его продуктах, пожалуйста, нажмите здесь http://www.aspose.com/