Erstellen und laden Sie ein OneNote -Dokument

Aspose.NoteAPI unterstützt das Laden von Microsoft.Note -Dokumenten mithilfe ihres Dokumentobjektmodells. Es unterstützt das Laden von Microsoft OneNote 2010, 2013 und OneNote Online (SharePoint) -Dateiformaten. Es bietet Unterstützung für .One sowie .onetoc2 -Dateiformate.

Erstellen Sie eine OneNote und speichern Sie im HTML -Format **

Aspose.Note unterstützt das Erstellen einer OneNote -Datei und speichert sie dann im HTML -Dateiformat. Um diese Funktion zu verwenden, importieren Sie den Namespace Aspose.Note.Savace in Ihr Anwendungsprojekt. Es verfügt über zahlreiche wertvolle Klassen zum Rendern, beispielsweise HTMLSaveOptions, Imagesaveoptions, PDFSaveOptions und SaveOptions.

Aspose.Note für .NET bietet die Dokument Klasse an, die eine OneNote -Datei darstellt. Die Dokumentklasse enthält die Speichernmethode, die aufgerufen werden kann, um die OneNote -Datei in das HTML -Dateiformat umzuwandeln. Die Klasse htmlsaveOptions bietet Optionen zum Erstellen von HTML -Dateien wie PageIndex, PageCount, SaveFormat und anderen.

Erstellen eines OneNote -Dokuments und Speichern in HTML mit den Standardoptionen

Das folgende Codebeispiel zeigt, wie Sie eine OneNote erstellen und mithilfe der Standardoptionen in die HTML speichern.

 1// The path to the documents directory.
 2string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
 3
 4// Initialize OneNote document
 5Document doc = new Document();
 6Aspose.Note.Page page = new Aspose.Note.Page(doc);
 7
 8// Default style for all text in the document.
 9ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
10page.Title = new Title(doc)
11{
12    TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
13    TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
14    TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
15};
16doc.AppendChildLast(page);
17dataDir = dataDir + "CreateOneNoteDocAndSaveToHTML_out.html";
18// Save as HTML format
19doc.Save(dataDir);

Erstellen eines OneNote -Dokuments und Speichern eines Seitenbereichs in html

Das folgende Codebeispiel zeigt, wie Sie eine OneNote erstellen und einen Seitenbereich in HTML unter Verwendung der HTMLSavoptions -Klasse speichern. Es legt die PageCount- und PageIndex -Eigenschaften fest.

 1// The path to the documents directory.
 2string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
 3
 4// Initialize OneNote document
 5Document doc = new Document();
 6
 7Aspose.Note.Page page = new Aspose.Note.Page(doc);
 8// Default style for all text in the document.
 9ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
10page.Title = new Title(doc)
11{
12    TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
13    TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
14    TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
15};
16doc.AppendChildLast(page);
17
18dataDir = dataDir + "CreateAndSavePageRange_out.html";
19// Save as HTML format
20doc.Save(dataDir, new HtmlSaveOptions
21{
22    PageCount = 1,
23    PageIndex = 0
24});

Speichern Sie den Speicherstrom mit eingebetteten Ressourcen

 1string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
 2var document = new Aspose.Note.Document(dataDir + "Aspose.one");
 3
 4var options = new HtmlSaveOptions()
 5{
 6    ExportCss = ResourceExportType.ExportEmbedded,
 7    ExportFonts = ResourceExportType.ExportEmbedded,
 8    ExportImages = ResourceExportType.ExportEmbedded,
 9    FontFaceTypes = FontFaceType.Ttf
10};
11var r = new MemoryStream();
12document.Save(r, options);

speichern im Speicher mit Rückrufstreams **

 1// This code creates documentFolder containing document.html, css folder with style.css file, images folder with images and fonts folder with fonts.
 2// style.css file will contains at the end the following string "/* This line is appended to stream manually by user */"
 3var options = new HtmlSaveOptions()
 4{
 5    FontFaceTypes = FontFaceType.Ttf
 6};
 7var savingCallbacks = new UserSavingCallbacks()
 8{
 9    RootFolder = "documentFolder",
10    CssFolder = "css",
11    KeepCssStreamOpened = true,
12    ImagesFolder = "images",
13    FontsFolder = "fonts"
14};
15options.CssSavingCallback = savingCallbacks;
16options.FontSavingCallback = savingCallbacks;
17options.ImageSavingCallback = savingCallbacks;
18
19if (!Directory.Exists(savingCallbacks.RootFolder))
20{
21    Directory.CreateDirectory(savingCallbacks.RootFolder);
22}
23
24string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
25var document = new Aspose.Note.Document(dataDir + "Aspose.one");
26
27using (var stream = File.Create(Path.Combine(savingCallbacks.RootFolder, "document.html")))
28{
29    document.Save(stream, options);
30}
31
32using (var writer = new StreamWriter(savingCallbacks.CssStream))
33{
34    writer.WriteLine();
35    writer.WriteLine("/* This line is appended to stream manually by user */");
36}

Die obige Probe erfordert die folgende Klasse für die Ausführung.

 1// For complete examples and data files, please go to https://github.com/aspose-note/Aspose.Note-for-.NET
 2class UserSavingCallbacks : ICssSavingCallback, IFontSavingCallback, IImageSavingCallback
 3{
 4    public string RootFolder { get; set; }
 5    public bool KeepCssStreamOpened { get; set; }
 6    public string CssFolder { get; set; }
 7    public Stream CssStream { get; private set; }
 8    public string FontsFolder { get; set; }
 9    public string ImagesFolder { get; set; }
10    public void FontSaving(FontSavingArgs args)
11    {
12        string uri;
13        Stream stream;
14        this.CreateResourceInFolder(this.FontsFolder, args.FileName, out uri, out stream);
15        args.Stream = stream;
16        args.Uri = Path.Combine("..", uri).Replace("\\", "\\\\");
17    }
18    public void CssSaving(CssSavingArgs args)
19    {
20        string uri;
21        Stream stream;
22        this.CreateResourceInFolder(this.CssFolder, args.FileName, out uri, out stream);
23        args.Stream = this.CssStream = stream;
24        args.KeepStreamOpen = this.KeepCssStreamOpened;
25        args.Uri = uri;
26    }
27    public void ImageSaving(ImageSavingArgs args)
28    {
29        string uri;
30        Stream stream;
31        this.CreateResourceInFolder(this.ImagesFolder, args.FileName, out uri, out stream);
32        args.Stream = stream;
33        args.Uri = uri;
34    }
35    private void CreateResourceInFolder(string folder, string filename, out string uri, out Stream stream)
36    {
37        var relativePath = folder;
38        var fullPath = Path.Combine(this.RootFolder, relativePath);
39        if (!Directory.Exists(fullPath))
40        {
41            Directory.CreateDirectory(fullPath);
42        }
43        stream = File.Create(Path.Combine(fullPath, filename));
44        uri = Path.Combine(relativePath, filename);
45    }
46}

Speichern Sie als HTML -Datei mit Ressourcen in der separaten Datei

 1string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
 2var document = new Aspose.Note.Document(dataDir + "Aspose.one");
 3
 4var options = new HtmlSaveOptions()
 5{
 6    ExportCss = ResourceExportType.ExportEmbedded,
 7    ExportFonts = ResourceExportType.ExportEmbedded,
 8    ExportImages = ResourceExportType.ExportEmbedded,
 9    FontFaceTypes = FontFaceType.Ttf
10};
11document.Save(dataDir + "document_out.html", options);

OneNote -Dokumente laden

Die von der API ausgesetzte Dokumentklasse kann zum Laden von Microsoft OneNote .one -Dateiformatdateien verwendet werden. Das folgende Codebeispiel zeigt die Verwendung dieser Klasse zum Laden eines Microsoft OneNote -Dokuments.

1// Load the document into Aspose.Note.
2Document oneFile = new Document(dataDir + "Aspose.one");

Erhöhen Sie die Leistung für die daraus resultierenden Exportoperationen

Aspose.Note FÜR .NET APIS Ermöglichen Sie die Erhöhung der Leistung für den Folgen von Exportvorgängen. Benutzer können an mehreren Conversions in mehrere unterstützte Formate beteiligt sind. In solchen Szenarien ist die Leistung der hochwirksame Faktor. Aspose.Note für .NET bietet die Dokument Klasse an, die eine OneNote -Datei darstellt. Die Dokumentklasse enthält die automatische Eigenschaft mit automatischen Eigenschaften und DetectLayoutchanges -Methode, deren Kombinat -Nutzung den Benutzern die automatische Erkennung von Layoutänderungen deaktivieren und sie manuell verarbeiten kann:

 1// The path to the documents directory.
 2string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
 3
 4// Initialize the new Document
 5Document doc = new Document() { AutomaticLayoutChangesDetectionEnabled = false };
 6// Initialize the new Page
 7Aspose.Note.Page page = new Aspose.Note.Page(doc);
 8// Default style for all text in the document.
 9ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
10page.Title = new Title(doc)
11{
12    TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
13    TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
14    TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
15};
16// Append page node
17doc.AppendChildLast(page);
18// Save OneNote document in different formats, set text font size and detect layout changes manually.
19doc.Save(dataDir + "ConsequentExportOperations_out.html");            
20doc.Save(dataDir + "ConsequentExportOperations_out.pdf");            
21doc.Save(dataDir + "ConsequentExportOperations_out.jpg");            
22textStyle.FontSize = 11;           
23doc.DetectLayoutChanges();            
24doc.Save(dataDir + "ConsequentExportOperations_out.bmp");

Arbeiten mit passwortgeschützten OneNote -Dokumenten

Erstellen von passwortgeschütztem OneNote -Dokumenten

1// The path to the documents directory.
2string dataDir = RunExamples.GetDataDir_NoteBook();
3
4Document document = new Document();
5document.Save(dataDir + "CreatingPasswordProtectedDoc_out.one", new OneSaveOptions() { DocumentPassword = "pass" });

Laden Sie passwortgeschützte OneNote -Dokumente **

ASSONE.NOTE API ermöglicht das Laden einer passwortgeschützten OneNote-Dokumente. Die LoadOptions -Klasse der API enthält die Dokumentpassword -Eigenschaft, um das Dokumentkennwort anzugeben. Ein passwortgeschütztes OneNote-Dokument kann unter den folgenden Schritten geladen werden:

  1. Erstellen Sie ein neues Objekt der LoadOptions -Klasse
  2. Geben Sie das Kennwort des Dokuments mit der Dokumentpassword -Eigenschaft an
  3. Laden Sie das Dokument mit dem definierten Objekt der LoadOptions -Klasse

1// The path to the documents directory.
2string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
3
4LoadOptions loadOptions = new LoadOptions
5{
6    DocumentPassword = "password"
7};
8Document doc = new Document(dataDir + "Sample1.one", loadOptions);
9            
 1            string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
 2            string fileName = Path.Combine(dataDir, "Aspose.one");
 3
 4            Document document;
 5            if (!Document.IsEncrypted(fileName, out document))
 6            {
 7                Console.WriteLine("The document is loaded and ready to be processed.");
 8            }
 9            else
10            {
11                Console.WriteLine("The document is encrypted. Provide a password.");
12            }
 1            string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
 2            string fileName = Path.Combine(dataDir, "Aspose.one");
 3
 4            Document document;
 5            if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
 6            {
 7                if (document != null)
 8                {
 9                    Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
10                }
11                else
12                {
13                    Console.WriteLine("The document is encrypted. Invalid password was provided.");
14                }
15            }
16            else
17            {
18                Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
19            }

Einstellen der Seitenspaltalgorithmus

Bei der Konvertierung eines OneNote -Dokuments in andere Formate können Bilder und andere Inhalte aufgrund ihrer Position im Dokument gestört werden. Somit ist es erforderlich, einige Methoden anzugeben, um die Seite zu teilen. Die PDFSaveOptions.PagePlittingalgorithmus -Eigenschaft bietet verschiedene Optionen, um einen Algorithmus der Seitenaufteilung anzugeben. Diese Optionen sind:

Der Standardalgorithmus ist KeepSolidObjectSalgorithmus.

Verwenden der KeepSolidObjectSalgoirthmus

1// For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Note-for-.NET
2var pdfSaveOptions = new PdfSaveOptions();
3pdfSaveOptions.PageSplittingAlgorithm = new AlwaysSplitObjectsAlgorithm();
4// Or
5pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm();
6// Or
7pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm();

Für KeeppartandCloneSolidObjectTonextPageAlgorithmus und KeepSolidObjectSalgorithmus spielt die maximal mögliche Höhe eines Objekts eine Rolle, die auf die nächste Seite kloniert werden kann. Falls ein Objekt nicht kloniert werden kann, wird es unter Verwendung von immersplitObjectSalgorithmus aufgeteilt. Verwenden Sie den Konstruktorparameter, um diese Grenze wie unten gezeigt zu ändern:

1// For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Note-for-.NET
2float heightLimitOfClonedPart = 500;
3pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(heightLimitOfClonedPart);
4// Or
5pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(heightLimitOfClonedPart);

KeepSolidObjectSalgorithmus

\ 1. Die Grenze wurde überschritten und die Bilder wurden auf den Seitenverbindungen aufgeteilt.

1// For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Note-for-.NET
2pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(100);

\ 2. Die Grenze ist ausreichend und die Bilder wurden vollständig auf die nächste Seite kloniert.

1// For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Note-for-.NET
2pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(400);

KeeppartandCloneSolidObjectTonextPageAlgorithmus\ 1. Die Grenze wurde überschritten und die Bilder wurden in die Seitenverbindung aufgeteilt.

1// For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Note-for-.NET
2pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(100);

\ 2. Die Grenze ist ausreichend und die Bilder wurden teilweise zur ersten Seite hinzugefügt und vollständig auf die nächste Seite geklont.

1// For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Note-for-.NET
2pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(400);

ImmerSplitObjectSalgorithmus

Die Bilder wurden in die Seitenverbindung aufgeteilt.

todo:image_alt_text

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.