Obtenir, mettre à jour et développer des signets PDF en Java
Contents
[
Hide
]
Aspose.PDF for Java expose les signets à la fois via le modèle de plan de document et la façade PdfBookmarkEditor.
Obtenir les propriétés des signets
Utilisez cet exemple lorsque vous devez inspecter les entrées de signets de niveau supérieur dans le plan du document.
- Ouvrez le PDF source Document.
- Parcourez la collection de contours.
- Lisez et imprimez le titre, le style et les valeurs de couleur du signet.
public static void getBookmarks(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (int i = 1; i <= document.getOutlines().size(); i++) {
OutlineItemCollection outlineItem = document.getOutlines().get_Item(i);
System.out.println(outlineItem.getTitle());
System.out.println(outlineItem.getItalic());
System.out.println(outlineItem.getBold());
System.out.println(outlineItem.getColor());
}
}
}
Obtenir les numéros de page des signets
Cet exemple utilise PdfBookmarkEditor pour extraire les titres, les niveaux, les numéros de page et les actions des signets.
- Liez le PDF source à PdfBookmarkEditor.
- Extrayez la collection de signets et parcourez-la.
- Imprimez le niveau, le titre, le numéro de page et les informations sur l’action pour chaque signet.
public static void getBookmarkPageNumber(Path inputFile) {
PdfBookmarkEditor bookmarkEditor = new PdfBookmarkEditor();
try {
bookmarkEditor.bindPdf(inputFile.toString());
for (Bookmark bookmark : bookmarkEditor.extractBookmarks()) {
String levelSeparator = "";
for (int i = 0; i < bookmark.getLevel(); i++) {
levelSeparator += "----";
}
System.out.println(levelSeparator + " Title: " + bookmark.getTitle());
System.out.println(levelSeparator + " Page Number: " + bookmark.getPageNumber());
System.out.println(levelSeparator + " Page Action: " + bookmark.getAction());
}
} finally {
bookmarkEditor.close();
}
}
Obtenir des signets enfants
Utilisez cet exemple lorsque vous devez inspecter à la fois les éléments de plan de niveau supérieur et imbriqués.
- Ouvrez le PDF source Document.
- Parcourez les contours de niveau supérieur et imprimez leurs propriétés.
- Détectez les signets enfants, puis parcourez-les et imprimez leurs propriétés.
public static void getChildBookmarks(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (int i = 1; i <= document.getOutlines().size(); i++) {
OutlineItemCollection outlineItem = document.getOutlines().get_Item(i);
System.out.println(outlineItem.getTitle());
System.out.println(outlineItem.getItalic());
System.out.println(outlineItem.getBold());
System.out.println(outlineItem.getColor());
int count = outlineItem.size();
if (count > 0) {
System.out.println("Child Bookmarks");
for (int j = 1; j <= outlineItem.size(); j++) {
OutlineItemCollection childOutlineItem = outlineItem.get_Item(j);
System.out.println(childOutlineItem.getTitle());
System.out.println(childOutlineItem.getItalic());
System.out.println(childOutlineItem.getBold());
System.out.println(childOutlineItem.getColor());
}
}
}
}
}
Mettre à jour les signets
Utilisez cet exemple lorsqu’un titre et un style de signet existant doivent être modifiés.
- Ouvrez le PDF source Document.
- Accédez à l’élément de plan cible et à son signet enfant.
- Mettez à jour les propriétés du signet et enregistrez le document.
public static void updateBookmarks(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
OutlineItemCollection outline = document.getOutlines().get_Item(1);
OutlineItemCollection childOutline = outline.get_Item(1);
childOutline.setTitle("Updated Outline");
childOutline.setItalic(true);
childOutline.setBold(true);
document.save(outputFile.toString());
}
}
Développer les signets par défaut
Utilisez cet exemple lorsque le panneau de signets doit s’ouvrir et afficher les éléments de plan développés lorsque le document est affiché.
- Ouvrez le PDF source Document.
- Définissez le mode page pour utiliser les contours et marquez chaque élément du plan comme ouvert.
- Enregistrez le document mis à jour.
public static void expandedBookmarks(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.setPageMode(PageMode.UseOutlines);
for (int i = 1; i <= document.getOutlines().size(); i++) {
OutlineItemCollection item = document.getOutlines().get_Item(i);
item.setOpen(true);
}
document.save(outputFile.toString());
}
}