Arbeiten mit Seiten
Die Aspose.Note für Java APIs bieten Unterstützung zum Abrufen der Versionsgeschichte einer bestimmten Seite, z. B. wie oft eine Seite aktualisiert wurde, Nachverfolgung von Inhaltsänderungen und vieles mehr. Alle Seiten der OneNote-Datei sind Knoten des Objekts Document.
Anzahl der Seiten eines OneNote-Dokuments abrufen
Aspose.Note für Java unterstützt das Abrufen der Seitenanzahl eines OneNote-Dokuments.
Dieses Beispiel funktioniert wie folgt:
- Erstellen Sie ein Objekt der Klasse Document.
- Rufen Sie die Methode
getChildNodes
der Document-Klasse auf. - Erhalten Sie eine Liste von Seitenknoten.
- Rufen Sie die Seitenanzahl über die Eigenschaft
Count
ab. - Zeigen Sie die Anzahl auf dem Bildschirm an.
Der folgende Codeausschnitt zeigt, wie man die Anzahl der Seiten aus einer OneNote-Datei abruft:
1String dataDir = Utils.getSharedDataDir(GetPageCount.class) + "pages/";
2// Load the document into Aspose.Note
3Document doc = new Document(dataDir + "Sample1.one");
4
5// Get number of pages
6int count = doc.getChildNodes(Page.class).size();
7
8// Print page count
9System.out.printf("Total Pages: %s", count);
Informationen zu jeder Seite eines OneNote-Dokuments abrufen
Die Klasse Page stellt alle Eigenschaften zur Verfügung, die sich auf eine Seite eines OneNote-Dokuments beziehen. Alle Seiten befinden sich als Knoten im Objekt Document.
Der Code unten zeigt, wie man Informationen zu jeder Seite eines OneNote-Dokuments abruft.
1String dataDir = Utils.getSharedDataDir(GetInfo.class) + "pages/";
2// Load the document into Aspose.Note
3LoadOptions options = new LoadOptions();
4Document doc = new Document(dataDir + "Sample1.one", options);
5
6// Get page revisions
7List<Page> pages = doc.getChildNodes(Page.class);
8
9// Traverse list of pages
10for (Page pageRevision : pages) {
11 System.out.println("LastModifiedTime: " + pageRevision.getLastModifiedTime());
12 System.out.println("CreationTime: " + pageRevision.getCreationTime());
13 System.out.println("Title: " + pageRevision.getTitle());
14 System.out.println("Level: " + pageRevision.getLevel());
15 System.out.println("Author: " + pageRevision.getAuthor());
16}
OneNote-Dokument mit Root- und Unterseiten erstellen
Dieser Abschnitt erklärt, wie Entwickler ein OneNote-Dokument mit verschiedenen Seiten auf Root- oder Unterebene erzeugen können. Die Aspose.Note APIs ermöglichen es, die Seitenebene programmatisch zu wählen.
Root- und Unterseiten in OneNote erzeugen
Hier eine kurze Anleitung zur Erstellung eines OneNote-Dokuments mit den Aspose.Note APIs:
- Erstellen Sie eine Instanz der Klasse Document, die ein OneNote-Dokument darstellt.
- Initialisieren Sie drei Objekte der Klasse Page und setzen Sie deren Ebenen.
- Initialisieren Sie jeweils ein Objekt der Klassen
Outline,
OutlineElement und
RichText pro Seite, indem Sie das Document-Objekt übergeben.
Mit der MethodeAppendChildLast
der Klassen OutlineElement, Outline, Page und Document können neue Knoten hinzugefügt werden. - Die Klasse TextStyle definiert die Textformatierung.
- Erstellen Sie das OneNote-Dokument mit der Methode
Save
des Document-Objekts.
1String dataDir = Utils.getSharedDataDir(CreateDocWithRootAndSubPages.class) + "pages/";
2
3// create an object of the Document class
4Document doc = new Document();
5// initialize Page class object and set its level
6Page page1 = new Page(doc);
7page1.setLevel((byte) 1);
8// initialize Page class object and set its level
9Page page2 = new Page(doc);
10page1.setLevel((byte) 2);
11// initialize Page class object and set its level
12Page page3 = new Page(doc);
13page1.setLevel((byte) 1);
14
15// ---------- Adding nodes to first Page ----------
16Outline outline = new Outline(doc);
17OutlineElement outlineElem = new OutlineElement(doc);
18ParagraphStyle textStyle = new ParagraphStyle();
19textStyle.setFontColor(java.awt.Color.black);
20textStyle.setFontName("David Transparent");
21textStyle.setFontSize(10);
22
23RichText text = new RichText(doc);
24text.setText("First page.");
25text.setParagraphStyle(textStyle);
26
27outlineElem.appendChildLast(text);
28outline.appendChildLast(outlineElem);
29page1.appendChildLast(outline);
30
31// ---------- Adding nodes to second Page ----------
32Outline outline2 = new Outline(doc);
33OutlineElement outlineElem2 = new OutlineElement(doc);
34// var textStyle2 = new TextStyle { FontColor = Color.Black, FontName =
35// "Arial", FontSize = 10 };
36ParagraphStyle textStyle2 = new ParagraphStyle();
37textStyle2.setFontColor(java.awt.Color.black);
38textStyle2.setFontName("David Transparent");
39textStyle2.setFontSize(10);
40
41// var text2 = new RichText(doc) { Text = "Second page.", DefaultStyle =
42// textStyle2 };
43RichText text2 = new RichText(doc);
44text2.setText("Second page.");
45text2.setParagraphStyle(textStyle2);
46
47outlineElem2.appendChildLast(text2);
48outline2.appendChildLast(outlineElem2);
49page2.appendChildLast(outline2);
50
51// ---------- Adding nodes to third Page ----------
52Outline outline3 = new Outline(doc);
53OutlineElement outlineElem3 = new OutlineElement(doc);
54ParagraphStyle textStyle3 = new ParagraphStyle();
55textStyle3.setFontColor(java.awt.Color.black);
56textStyle3.setFontName("Broadway");
57textStyle3.setFontSize(10);
58
59RichText text3 = new RichText(doc);
60text3.setText("Third page.");
61text3.setParagraphStyle(textStyle3);
62
63outlineElem3.appendChildLast(text3);
64outline3.appendChildLast(outlineElem3);
65page3.appendChildLast(outline3);
66
67// ---------- Add pages to the OneNote Document ----------
68doc.appendChildLast(page1);
69doc.appendChildLast(page2);
70doc.appendChildLast(page3);
71
72try {
73 doc.save(dataDir + "GenerateRootAndSubLevelPagesInOneNote_out.bmp", SaveFormat.Bmp);
74
75} catch (IOException e) {
76
77}
Arbeiten mit Versionsinformationen von Seiten
1// The path to the documents directory.
2String dataDir = Utils.getSharedDataDir(WorkingWithPageRevisions.class) + "pages\\";
3
4// Load OneNote document and get first child
5Document document = new Document(dataDir + "Sample1.one");
6Page page = document.getFirstChild();
7
8// Reading Content Revision Summary for this page
9RevisionSummary pageRevisionInfo = page.getPageContentRevisionSummary();
10
11System.out.println(String.format("Author:\t%s\nModified:\t%s",
12 pageRevisionInfo.getAuthorMostRecent(),
13 pageRevisionInfo.getLastModifiedTime().toString()));
14
15// Update Page Revision Summary for this page
16pageRevisionInfo.setAuthorMostRecent("New Author");
17Calendar modifiedDate = Calendar.getInstance();
18pageRevisionInfo.setLastModifiedTime(modifiedDate.getTime());
19document.save(dataDir + "WorkingWithPageRevisions_out.one");
Arbeiten mit Seitengeschichte
Alle Versionen einer bestimmten Seite abrufen
Die Eigenschaft LoadHistory
der Klasse
LoadOptions gibt an, ob die gesamte Versionsgeschichte geladen werden soll. Standardwert ist true
.
Bei Dokumenten mit sehr vielen historischen Daten empfiehlt es sich, LoadHistory=false
zu setzen, um Speicher- und CPU-Verbrauch zu reduzieren.
Der folgende Beispielcode zeigt, wie man eine bestimmte Seite abruft und deren Versionshistorie einsehen kann.
1String dataDir = Utils.getSharedDataDir(GetPageRevisions.class) + "pages/";
2
3LoadOptions loadOptions = new LoadOptions();
4loadOptions.setLoadHistory(true);
5// load OneNote document
6Document document = new Document(dataDir + "Sample1.one", loadOptions);
7// get first page
8Page firstPage = document.getFirstChild();
9for (Page pageRevision : document.getPageHistory(firstPage)) {
10 // Use pageRevision like a regular page.
11 System.out.println("LastModifiedTime: " + pageRevision.getLastModifiedTime());
12 System.out.println("CreationTime: " + pageRevision.getCreationTime());
13 System.out.println("Title: " + pageRevision.getTitle());
14 System.out.println("Level: " + pageRevision.getLevel());
15 System.out.println("Author: " + pageRevision.getAuthor());
16 System.out.println();
17}
Zur vorherigen Seitenversion zurückkehren
1String dataDir = Utils.getSharedDataDir(InsertPages.class) + "pages/";
2
3// Load OneNote document and get first child
4Document document = new Document(dataDir + "Sample1.one");
5
6Page page = document.getFirstChild();
7
8PageHistory pageHistory = document.getPageHistory(page);
9
10document.removeChild(page);
11
12document.appendChildLast(pageHistory.get_Item(pageHistory.size() - 1));
13
14document.save(dataDir + "RollBackToPreviousPageVersion_out.one");
Aktuelle Seitenversion zur Historie hinzufügen
1String dataDir = Utils.getSharedDataDir(InsertPages.class) + "pages/";
2// Load OneNote document and get first child
3Document document = new Document(dataDir + "Sample1.one");
4Page page = document.getFirstChild();
5
6PageHistory pageHistory = document.getPageHistory(page);
7
8pageHistory.addItem(page.deepClone());
9
10document.save(dataDir + "PushCurrentPageVersion_out.one");
Seitenverlauf ändern
1String dataDir = Utils.getSharedDataDir(InsertPages.class) + "pages/";
2// Load OneNote document and get first child
3Document document = new Document(dataDir + "Sample1.one");
4
5Page page = document.getFirstChild();
6
7PageHistory pageHistory = document.getPageHistory(page);
8
9pageHistory.removeRange(0, 1);
10
11pageHistory.set_Item(0, new Page(document));
12
13pageHistory.get_Item(1).getTitle().getTitleText().setText("New Title");
14
15pageHistory.addItem(new Page(document));
16
17pageHistory.insertItem(1, new Page(document));
18
19document.save(dataDir + "ModifyPageHistory_out.one");
Arbeiten mit Konfliktseiten
Ein Dokument kann Seiten enthalten, deren Historie Konfliktseiten umfasst. Solche Seiten werden standardmäßig nicht gespeichert. Mit der Methode isConflictPage
können Sie solche Seiten identifizieren und verwalten:
1String dataDir = Utils.getSharedDataDir(GetInfo.class) + "pages/";
2// Load the document into Aspose.Note
3LoadOptions options = new LoadOptions();
4Document doc = new Document(dataDir + "Aspose.one", options);
5
6DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH.mm.ss");
7
8PageHistory history = doc.getPageHistory(doc.getFirstChild());
9for (int i = 0; i < history.size(); i++)
10{
11 Page historyPage = history.get_Item(i);
12 System.out.format(" %d. Author: %s, %s",
13 i,
14 historyPage.getPageContentRevisionSummary().getAuthorMostRecent(),
15 df.format(historyPage.getPageContentRevisionSummary().getLastModifiedTime()));
16 System.out.println(historyPage.isConflictPage() ? ", IsConflict: true" : "");
17 // By default conflict pages are just skipped on saving.
18 // If mark it as non-conflict then it will be saved as usual one in the history.
19 if (historyPage.isConflictPage())
20 historyPage.setConflictPage(false);
21}
22
23doc.save(dataDir + "ConflictPageManipulation_out.one", SaveFormat.One);