Class Document
Document class
Представляет документ Aspose.Note.
public class Document : CompositeNode<Page>, INotebookChildNode
Конструкторы
Имя | Описание |
---|---|
Document() | Инициализирует новый экземплярDocument class. Создает пустой документ OneNote. |
Document(Stream) | Инициализирует новый экземплярDocument class. Открывает существующий документ OneNote из потока. |
Document(string) | Инициализирует новый экземплярDocument class. Открывает существующий документ OneNote из файла. |
Document(Stream, LoadOptions) | Инициализирует новый экземплярDocument class. Открывает существующий документ OneNote из потока. Позволяет указать дополнительные параметры, такие как пароль шифрования. |
Document(string, LoadOptions) | Инициализирует новый экземплярDocument class. Открывает существующий документ OneNote из файла. Позволяет указать дополнительные параметры, такие как пароль шифрования. |
Характеристики
Имя | Описание |
---|---|
AutomaticLayoutChangesDetectionEnabled { get; set; } | Получает или задает значение, указывающее, выполняет ли Aspose.Note автоматическое обнаружение изменений макета. Значение по умолчанию:истинный . |
Color { get; set; } | Получает или задает цвет. |
CreationTime { get; set; } | Получает или задает время создания. |
DisplayName { get; set; } | Получает или задает отображаемое имя. |
Document { get; } | Получает документ узла. |
FileFormat { get; } | Получает формат файла (OneNote 2010, OneNote Online). |
FirstChild { get; } | |
Guid { get; } | Получает глобально уникальный идентификатор объекта. |
IsComposite { get; } | |
LastChild { get; } | |
NextSibling { get; } | Получает следующий узел на том же уровне дерева узлов. |
NodeType { get; } | Получает тип узла. |
ParentNode { get; } | Получает родительский узел. |
PreviousSibling { get; } | Получает предыдущий узел на том же уровне дерева узлов. |
Методы
Имя | Описание |
---|---|
override Accept(DocumentVisitor) | Принимает посетителя узла. |
virtual AppendChildFirst<T1>(T1) | |
virtual AppendChildLast<T1>(T1) | |
DetectLayoutChanges() | Обнаруживает все изменения, внесенные в макет документа с момента предыдущегоDetectLayoutChanges call. В случаеAutomaticLayoutChangesDetectionEnabled установлено значение true, используется автоматически в начале экспорта документа. |
override GetChildNodes<T1>() | |
GetEnumerator() | |
GetPageHistory(Page) | ПолучаетPageHistory который содержит полную историю для каждой страницы, представленной в документе (самая ранняя с индексом 0). Доступ к текущей версии страницы можно получить какCurrent и содержится отдельно от коллекции исторических версий. |
Import(Stream, PdfImportOptions, MergeOptions) | Импортирует набор страниц из предоставленного документа PDF. |
Import(string, PdfImportOptions, MergeOptions) | Импортирует набор страниц из предоставленного документа PDF. |
virtual InsertChild<T1>(int, T1) | |
InsertChildrenRange(int, IEnumerable<Page>) | |
InsertChildrenRange(int, params Page[]) | |
Merge(IEnumerable<Page>, MergeOptions) | Объединяет набор страниц в документ. |
Print() | Печать документа на принтере по умолчанию. |
Print(PrintOptions) | Печать документа на принтере по умолчанию. |
RemoveChild<T1>(T1) | |
Save(Stream) | Сохраняет документ OneNote в поток. |
Save(string) | Сохраняет документ OneNote в файл. |
Save(Stream, SaveFormat) | Сохраняет документ OneNote в поток в указанном формате. |
Save(Stream, SaveOptions) | Сохраняет документ OneNote в поток, используя указанные параметры сохранения. |
Save(string, SaveFormat) | Сохраняет документ OneNote в файл в указанном формате. |
Save(string, SaveOptions) | Сохраняет документ OneNote в файл, используя указанные параметры сохранения. |
static IsEncrypted(Stream, out Document) | Проверяет, зашифрован ли документ из потока. Для проверки нам нужно полностью загрузить этот документ. Таким образом, этот метод может привести к снижению производительности. |
static IsEncrypted(string, out Document) | Проверяет, зашифрован ли документ из файла. Для проверки нам нужно полностью загрузить этот документ. Таким образом, этот метод может привести к снижению производительности. |
static IsEncrypted(Stream, LoadOptions, out Document) | Проверяет, зашифрован ли документ из потока. Для проверки нам нужно полностью загрузить этот документ. Таким образом, этот метод может привести к снижению производительности. |
static IsEncrypted(Stream, string, out Document) | Проверяет, зашифрован ли документ из потока. Для проверки нам нужно полностью загрузить этот документ. Таким образом, этот метод может привести к снижению производительности. |
static IsEncrypted(string, LoadOptions, out Document) | Проверяет, зашифрован ли документ из файла. Для проверки нам нужно полностью загрузить этот документ. Таким образом, этот метод может привести к снижению производительности. |
static IsEncrypted(string, string, out Document) | Проверяет, зашифрован ли документ из файла. Для проверки нам нужно полностью загрузить этот документ. Таким образом, этот метод может привести к снижению производительности. |
Примеры
Показывает, как отправить документ на принтер с помощью стандартного диалогового окна Windows с параметрами по умолчанию.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
var document = new Aspose.Note.Document(dataDir + "Aspose.one");
document.Print();
Показывает, как сохранить документ.
string inputFile = "Sample1.one";
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string outputFile = "SaveDocToOneNoteFormat_out.one";
Document doc = new Document(dataDir + inputFile);
doc.Save(dataDir + outputFile);
Показывает, как зашифровать документ.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
LoadOptions loadOptions = new LoadOptions { DocumentPassword = "password" };
Document doc = new Document(dataDir + "Sample1.one", loadOptions);
Показывает, как сохранить документ с шифрованием.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_NoteBook();
Document document = new Document();
document.Save(dataDir + "CreatingPasswordProtectedDoc_out.one", new OneSaveOptions() { DocumentPassword = "pass" });
Показывает, как сохранить документ с помощью перечисления SaveFormat.
string inputFile = "Sample1.one";
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string outputFile = "SaveDocToOneNoteFormatUsingSaveFormat_out.one";
Document document = new Document(dataDir + inputFile);
document.Save(dataDir + outputFile, SaveFormat.One);
Показывает, как сохранить документ с помощью OneSaveOptions.
string inputFile = "Sample1.one";
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string outputFile = "SaveDocToOneNoteFormatUsingOneSaveOptions_out.one";
Document document = new Document(dataDir + inputFile);
document.Save(dataDir + outputFile, new OneSaveOptions());
Показывает, как получить количество страниц документа.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Pages();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Aspose.one");
// Получить количество страниц
int count = oneFile.Count();
// Вывести счет на экран вывода
Console.WriteLine(count);
Показывает, как сохранить документ в формате pdf с настройками по умолчанию.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Aspose.one");
// Сохраняем документ как PDF
dataDir = dataDir + "SaveWithDefaultSettings_out.pdf";
oneFile.Save(dataDir, SaveFormat.Pdf);
Показывает, как сохранить документ в формате gif.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Aspose.one");
dataDir = dataDir + "SaveToImageDefaultOptions_out.gif";
// Сохраняем документ как gif.
oneFile.Save(dataDir, SaveFormat.Gif);
Показывает, как установить качество изображения при сохранении документа как изображения в формате JPEG.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document doc = new Document(dataDir + "Aspose.one");
dataDir = dataDir + "SetOutputImageResolution_out.jpg";
// Сохраняем документ.
doc.Save(dataDir, new ImageSaveOptions(SaveFormat.Jpeg) { Quality = 100 });
Показывает, как установить разрешение изображения при сохранении документа как изображения.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document doc = new Document(dataDir + "Aspose.one");
dataDir = dataDir + "SetOutputImageResolution_out.jpg";
// Сохраняем документ.
doc.Save(dataDir, new ImageSaveOptions(SaveFormat.Jpeg) { Resolution = 220 });
Показывает, как получить формат файла документа.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
var document = new Aspose.Note.Document(dataDir + "Aspose.one");
switch (document.FileFormat)
{
case FileFormat.OneNote2010:
// Обработка OneNote 2010
break;
case FileFormat.OneNoteOnline:
// Обработка OneNote в сети
break;
}
Показывает, как привязать гиперссылку к изображению.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Images();
var document = new Document();
var page = new Page(document);
var image = new Image(document, dataDir + "image.jpg") { HyperlinkUrl = "http://image.com" };
page.AppendChildLast(image);
document.AppendChildLast(page);
document.Save(dataDir + "Image with Hyperlink_out.one");
Показывает, как сохранить документ в поток.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document doc = new Document(dataDir + "Aspose.one");
MemoryStream dstStream = new MemoryStream();
doc.Save(dstStream, SaveFormat.Pdf);
// Перемотать позицию потока обратно на ноль, чтобы она была готова для следующего чтения.
dstStream.Seek(0, SeekOrigin.Begin);
Показывает, как проверить, защищен ли документ паролем.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string fileName = Path.Combine(dataDir, "Aspose.one");
Document document;
if (!Document.IsEncrypted(fileName, out document))
{
Console.WriteLine("The document is loaded and ready to be processed.");
}
else
{
Console.WriteLine("The document is encrypted. Provide a password.");
}
Показывает, как добавить новый раздел в записную книжку.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_NoteBook();
// Загрузить блокнот OneNote
var notebook = new Notebook(dataDir + "Notizbuch �ffnen.onetoc2");
// Добавляем новый дочерний элемент в Блокнот
notebook.AppendChild(new Document(dataDir + "Neuer Abschnitt 1.one"));
dataDir = dataDir + "AddChildNode_out.onetoc2";
// Сохраняем блокнот
notebook.Save(dataDir);
Показывает, как проверить, не произошла ли загрузка документа из-за того, что формат OneNote 2007 не поддерживается.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string fileName = Path.Combine(dataDir, "OneNote2007.one");
try
{
new Document(fileName);
}
catch (UnsupportedFileFormatException e)
{
if (e.FileFormat == FileFormat.OneNote2007)
{
Console.WriteLine("It looks like the provided file is in OneNote 2007 format that is not supported.");
}
else
throw;
}
Показывает, как восстановить предыдущую версию страницы.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Pages();
// Загрузить документ OneNote и получить первый дочерний элемент
Document document = new Document(dataDir + "Aspose.one");
Page page = document.FirstChild;
Page previousPageVersion = document.GetPageHistory(page).Last();
document.RemoveChild(page);
document.AppendChildLast(previousPageVersion);
document.Save(dataDir + "RollBackRevisions_out.one");
Показывает, как клонировать страницу.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Pages();
// Загрузить документ OneNote
Document document = new Document(dataDir + "Aspose.one", new LoadOptions { LoadHistory = true });
// Клонировать в новый документ без истории
var cloned = new Document();
cloned.AppendChildLast(document.FirstChild.Clone());
// Клонируем в новый документ с историей
cloned = new Document();
cloned.AppendChildLast(document.FirstChild.Clone(true));
Показывает, как сохранить документ в формате html с сохранением всех ресурсов (css/шрифты/изображения) в отдельные файлы.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
var document = new Document(Path.Combine(dataDir, "Aspose.one"));
var options = new HtmlSaveOptions()
{
ExportCss = ResourceExportType.ExportAsStream,
ExportFonts = ResourceExportType.ExportAsStream,
ExportImages = ResourceExportType.ExportAsStream,
FontFaceTypes = FontFaceType.Ttf
};
document.Save(dataDir + "document_out.html", options);
Показывает, как сохранить документ в поток в формате html с встраиванием всех ресурсов (css/шрифты/изображения).
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
var document = new Document(Path.Combine(dataDir, "Aspose.one"));
var options = new HtmlSaveOptions()
{
ExportCss = ResourceExportType.ExportEmbedded,
ExportFonts = ResourceExportType.ExportEmbedded,
ExportImages = ResourceExportType.ExportEmbedded,
FontFaceTypes = FontFaceType.Ttf
};
var r = new MemoryStream();
document.Save(r, options);
Показывает, как установить текстовое описание для изображения.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Images();
var document = new Document();
var page = new Page(document);
var image = new Image(document, dataDir + "image.jpg")
{
AlternativeTextTitle = "This is an image's title!",
AlternativeTextDescription = "And this is an image's description!"
};
page.AppendChildLast(image);
document.AppendChildLast(page);
dataDir = dataDir + "ImageAlternativeText_out.one";
document.Save(dataDir);
Показывает, как получить метаинформацию о странице.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Pages();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Aspose.one");
foreach (Page page in oneFile)
{
Console.WriteLine("LastModifiedTime: {0}", page.LastModifiedTime);
Console.WriteLine("CreationTime: {0}", page.CreationTime);
Console.WriteLine("Title: {0}", page.Title);
Console.WriteLine("Level: {0}", page.Level);
Console.WriteLine("Author: {0}", page.Author);
Console.WriteLine();
}
Когда длинные страницы OneNote сохраняются в формате PDF, они разбиваются на страницы. В примере показано, как настроить логику разделения объектов, расположенных на разрывах страниц.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document doc = new Document(dataDir + "Aspose.one");
var pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(100);
// или
pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(400);
dataDir = dataDir + "PageSplittUsingKeepPartAndCloneSolidObjectToNextPageAlgorithm_out.pdf";
doc.Save(dataDir);
Показывает, как сохранить документ в формате png.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Aspose.one");
// Инициализировать объект ImageSaveOptions
ImageSaveOptions opts = new ImageSaveOptions(SaveFormat.Png)
{
// Установить индекс страницы
PageIndex = 1
};
dataDir = dataDir + "ConvertSpecificPageToImage_out.png";
// Сохраняем документ в формате PNG.
oneFile.Save(dataDir, opts);
Показывает, как редактировать историю страницы.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Pages();
// Загрузить документ OneNote и получить первый дочерний элемент
Document document = new Document(dataDir + "Aspose.one");
Page page = document.FirstChild;
var pageHistory = document.GetPageHistory(page);
pageHistory.RemoveRange(0, 1);
pageHistory[0] = new Page(document);
if (pageHistory.Count > 1)
{
pageHistory[1].Title.TitleText.Text = "New Title";
pageHistory.Add(new Page(document));
pageHistory.Insert(1, new Page(document));
document.Save(dataDir + "ModifyPageHistory_out.one");
}
Показывает, как проверить, защищен ли документ определенным паролем.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string fileName = Path.Combine(dataDir, "Aspose.one");
Document document;
if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
{
if (document != null)
{
Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
}
else
{
Console.WriteLine("The document is encrypted. Invalid password was provided.");
}
}
else
{
Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
}
Показывает, как применить стиль темной темы к документу.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Text();
// Загрузите документ в Aspose.Note.
Document doc = new Document(Path.Combine(dataDir, "Aspose.one"));
foreach (var page in doc)
{
page.BackgroundColor = Color.Black;
}
foreach (var node in doc.GetChildNodes<RichText>())
{
var c = node.ParagraphStyle.FontColor;
if (c.IsEmpty || Math.Abs(c.R - Color.Black.R) + Math.Abs(c.G - Color.Black.G) + Math.Abs(c.B - Color.Black.B) <= 30)
{
node.ParagraphStyle.FontColor = Color.White;
}
}
doc.Save(Path.Combine(dataDir, "AsposeDarkTheme.pdf"));
Показывает, как пройти через содержимое записной книжки.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string fileName = "Open Notebook.onetoc2";
try
{
var notebook = new Notebook(dataDir + fileName);
foreach (var notebookChildNode in notebook)
{
Console.WriteLine(notebookChildNode.DisplayName);
if (notebookChildNode is Document)
{
// Делаем что-то с дочерним документом
}
else if (notebookChildNode is Notebook)
{
// Делаем что-нибудь с дочерним блокнотом
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Показывает, как получить изображение из документа.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Images();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Aspose.one");
// Получить все узлы изображения
IList<Aspose.Note.Image> nodes = oneFile.GetChildNodes<Aspose.Note.Image>();
foreach (Aspose.Note.Image image in nodes)
{
using (MemoryStream stream = new MemoryStream(image.Bytes))
{
using (Bitmap bitMap = new Bitmap(stream))
{
// Сохраняем байты изображения в файл
bitMap.Save(String.Format(dataDir + "{0}", Path.GetFileName(image.FileName)));
}
}
}
Показывает, как сохранить документ в формате pdf.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Aspose.one");
// Инициализировать объект PdfSaveOptions
PdfSaveOptions opts = new PdfSaveOptions
{
// Установить индекс первой страницы для сохранения
PageIndex = 0,
// Установить количество страниц
PageCount = 1,
};
// Сохраняем документ как PDF
dataDir = dataDir + "SaveRangeOfPagesAsPDF_out.pdf";
oneFile.Save(dataDir, opts);
Показывает, как сохранить документ в формате pdf, используя определенные настройки.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document doc = new Document(dataDir + "Aspose.one");
// Инициализировать объект PdfSaveOptions
PdfSaveOptions opts = new PdfSaveOptions
{
// Использовать сжатие JPEG
ImageCompression = Saving.Pdf.PdfImageCompression.Jpeg,
// Качество сжатия JPEG
JpegQuality = 90
};
dataDir = dataDir + "Document.SaveWithOptions_out.pdf";
doc.Save(dataDir, opts);
Показывает, как отправить документ на принтер, используя стандартный диалог Windows с заданными параметрами.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
var document = new Aspose.Note.Document(dataDir + "Aspose.one");
var printerSettings = new PrinterSettings() { FromPage = 0, ToPage = 10 };
printerSettings.DefaultPageSettings.Landscape = true;
printerSettings.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(50, 50, 150, 50);
document.Print(new PrintOptions()
{
PrinterSettings = printerSettings,
Resolution = 1200,
PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(),
DocumentName = "Test.one"
});
Показывает, как получить содержимое вложенного файла.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Attachments();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Sample1.one");
// Получаем список узлов прикрепленных файлов
IList<AttachedFile> nodes = oneFile.GetChildNodes<AttachedFile>();
// Перебираем все узлы
foreach (AttachedFile file in nodes)
{
// Загружаем прикрепленный файл в объект потока
using (Stream outputStream = new MemoryStream(file.Bytes))
{
// Создаем локальный файл
using (Stream fileStream = System.IO.File.OpenWrite(String.Format(dataDir + file.FileName)))
{
// Копируем файловый поток
CopyStream(outputStream, fileStream);
}
}
}
Показывает, как получить метаинформацию изображения.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Images();
// Загрузите документ в Aspose.Note.
Document oneFile = new Document(dataDir + "Aspose.one");
// Получить все узлы изображения
IList<Aspose.Note.Image> images = oneFile.GetChildNodes<Aspose.Note.Image>();
foreach (Aspose.Note.Image image in images)
{
Console.WriteLine("Width: {0}", image.Width);
Console.WriteLine("Height: {0}", image.Height);
Console.WriteLine("OriginalWidth: {0}", image.OriginalWidth);
Console.WriteLine("OriginalHeight: {0}", image.OriginalHeight);
Console.WriteLine("FileName: {0}", image.FileName);
Console.WriteLine("LastModifiedTime: {0}", image.LastModifiedTime);
Console.WriteLine();
}
Показывает, как получить историю страницы.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Pages();
// Загрузить документ OneNote
Document document = new Document(dataDir + "Aspose.one", new LoadOptions { LoadHistory = true });
// Получить первую страницу
Page firstPage = document.FirstChild;
foreach (Page pageRevision in document.GetPageHistory(firstPage))
{
/*Use pageRevision like a regular page.*/
Console.WriteLine("LastModifiedTime: {0}", pageRevision.LastModifiedTime);
Console.WriteLine("CreationTime: {0}", pageRevision.CreationTime);
Console.WriteLine("Title: {0}", pageRevision.Title);
Console.WriteLine("Level: {0}", pageRevision.Level);
Console.WriteLine("Author: {0}", pageRevision.Author);
Console.WriteLine();
}
Показывает, как добавить файл в документ, используя путь к файлу.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Attachments();
// Создаем объект класса Document
Document doc = new Document();
// Инициализировать объект класса Page
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// Инициализировать объект класса Outline
Outline outline = new Outline(doc);
// Инициализировать объект класса OutlineElement
OutlineElement outlineElem = new OutlineElement(doc);
// Инициализировать объект класса AttachedFile
AttachedFile attachedFile = new AttachedFile(doc, dataDir + "attachment.txt");
// Добавляем прикрепленный файл
outlineElem.AppendChildLast(attachedFile);
// Добавляем узел элемента контура
outline.AppendChildLast(outlineElem);
// Добавляем узел контура
page.AppendChildLast(outline);
// Добавляем узел страницы
doc.AppendChildLast(page);
dataDir = dataDir + "AttachFileByPath_out.one";
doc.Save(dataDir);
Показывает, как создать документ и сохранить его в формате html, используя параметры по умолчанию.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Инициализировать документ OneNote
Document doc = new Document();
Page page = doc.AppendChildLast(new Page());
// Стиль по умолчанию для всего текста в документе.
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
page.Title = new Title()
{
TitleText = new RichText() { Text = "Title text.", ParagraphStyle = textStyle },
TitleDate = new RichText() { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
TitleTime = new RichText() { Text = "12:34", ParagraphStyle = textStyle }
};
// Сохраняем в формате HTML
dataDir = dataDir + "CreateOneNoteDocAndSaveToHTML_out.html";
doc.Save(dataDir);
Показывает, как проверить, является ли страница конфликтующей (т. е. имеет ли она изменения, которые OneNote не может автоматически объединить).
string dataDir = RunExamples.GetDataDir_Pages();
// Загрузить документ OneNote
Document doc = new Document(dataDir + "Aspose.one", new LoadOptions { LoadHistory = true });
var history = doc.GetPageHistory(doc.FirstChild);
for (int i = 0; i < history.Count; i++)
{
var historyPage = history[i];
Console.Write(" {0}. Author: {1}, {2:dd.MM.yyyy hh.mm.ss}",
i,
historyPage.PageContentRevisionSummary.AuthorMostRecent,
historyPage.PageContentRevisionSummary.LastModifiedTime);
Console.WriteLine(historyPage.IsConflictPage ? ", IsConflict: true" : string.Empty);
// По умолчанию конфликтующие страницы просто пропускаются при сохранении.
// Если отметить его как неконфликтный, то он будет сохранен как обычный в истории.
if (historyPage.IsConflictPage)
historyPage.IsConflictPage = false;
}
doc.Save(dataDir + "ConflictPageManipulation_out.one", SaveFormat.One);
Показывает, как добавить изображение из файла в документ с заданными пользователем свойствами.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Images();
// Загружаем документ из потока.
Document doc = new Document(dataDir + "Aspose.one");
// Получить первую страницу документа.
Aspose.Note.Page page = doc.FirstChild;
// Загружаем изображение из файла.
Aspose.Note.Image image = new Aspose.Note.Image(doc, dataDir + "image.jpg")
{
// Измените размер изображения в соответствии с вашими потребностями (необязательно).
Width = 100,
Height = 100,
// Установить положение изображения на странице (необязательно).
HorizontalOffset = 100,
VerticalOffset = 400,
// Установить выравнивание изображения
Alignment = HorizontalAlignment.Right
};
// Добавляем изображение на страницу.
page.AppendChildLast(image);
Показывает, как добавить файл из потока в документ.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Attachments();
// Создаем объект класса Document
Document doc = new Document();
// Инициализировать объект класса Page
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// Инициализировать объект класса Outline
Outline outline = new Outline(doc);
// Инициализировать объект класса OutlineElement
OutlineElement outlineElem = new OutlineElement(doc);
using (var stream = File.OpenRead(dataDir + "icon.jpg"))
{
// Инициализируем объект класса AttachedFile, а также передаем путь к его значку
AttachedFile attachedFile = new AttachedFile(doc, dataDir + "attachment.txt", stream, ImageFormat.Jpeg);
// Добавляем прикрепленный файл
outlineElem.AppendChildLast(attachedFile);
}
// Добавляем узел элемента контура
outline.AppendChildLast(outlineElem);
// Добавляем узел контура
page.AppendChildLast(outline);
// Добавляем узел страницы
doc.AppendChildLast(page);
dataDir = dataDir + "AttachFileAndSetIcon_out.one";
doc.Save(dataDir);
Когда длинные страницы OneNote сохраняются в формате PDF, они разбиваются на страницы. В примере показано, как настроить логику разделения объектов, расположенных на разрывах страниц.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Загрузите документ в Aspose.Note.
Document doc = new Document(dataDir + "Aspose.one");
var pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.PageSplittingAlgorithm = new AlwaysSplitObjectsAlgorithm();
// Или
pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm();
// Или
pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm();
float heightLimitOfClonedPart = 500;
pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(heightLimitOfClonedPart);
// Или
pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(heightLimitOfClonedPart);
pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(100);
// Или
pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(400);
dataDir = dataDir + "UsingKeepSOlidObjectsAlgorithm_out.pdf";
doc.Save(dataDir);
Показывает, как создать документ и сохранить в формате html заданный диапазон страниц.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Инициализировать документ OneNote
Document doc = new Document();
Page page = doc.AppendChildLast(new Page());
// Стиль по умолчанию для всего текста в документе.
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
page.Title = new Title()
{
TitleText = new RichText() { Text = "Title text.", ParagraphStyle = textStyle },
TitleDate = new RichText() { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
TitleTime = new RichText() { Text = "12:34", ParagraphStyle = textStyle }
};
// Сохраняем в формате HTML
dataDir = dataDir + "CreateAndSavePageRange_out.html";
doc.Save(dataDir, new HtmlSaveOptions
{
PageCount = 1,
PageIndex = 0
});
Показывает, как создать документ с титульной страницей.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Создаем объект класса Document
Document doc = new Aspose.Note.Document();
// Инициализировать объект класса Page
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// Стиль по умолчанию для всего текста в документе.
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
// Задаем свойства заголовка страницы
page.Title = new Title(doc)
{
TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
};
// Добавляем узел страницы в документ
doc.AppendChildLast(page);
// Сохранить документ OneNote
dataDir = dataDir + "CreateDocWithPageTitle_out.one";
doc.Save(dataDir);
Показывает, как добавить изображение из потока в документ.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Images();
// Создаем объект класса Document
Document doc = new Document();
// Инициализировать объект класса Page
Aspose.Note.Page page = new Aspose.Note.Page(doc);
Outline outline1 = new Outline(doc);
OutlineElement outlineElem1 = new OutlineElement(doc);
using (FileStream fs = File.OpenRead(dataDir + "image.jpg"))
{
// Загружаем второе изображение, используя имя изображения, расширение и поток.
Aspose.Note.Image image1 = new Aspose.Note.Image(doc, "Penguins.jpg", fs)
{
// Установить выравнивание изображения
Alignment = HorizontalAlignment.Right
};
outlineElem1.AppendChildLast(image1);
}
outline1.AppendChildLast(outlineElem1);
page.AppendChildLast(outline1);
doc.AppendChildLast(page);
// Сохранить документ OneNote
dataDir = dataDir + "BuildDocAndInsertImageUsingImageStream_out.one";
doc.Save(dataDir);
Показывает, как добавить изображение из файла в документ.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Images();
// Создаем объект класса Document
Document doc = new Document();
// Инициализировать объект класса Page
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// Инициализируем объект класса Outline и устанавливаем свойства смещения
Outline outline = new Outline(doc);
// Инициализировать объект класса OutlineElement
OutlineElement outlineElem = new OutlineElement(doc);
// Загрузить изображение по пути к файлу.
Aspose.Note.Image image = new Aspose.Note.Image(doc, dataDir + "image.jpg")
{
// Установить выравнивание изображения
Alignment = HorizontalAlignment.Right
};
// Добавляем изображение
outlineElem.AppendChildLast(image);
// Добавляем элементы контура
outline.AppendChildLast(outlineElem);
// Добавляем узел Outline
page.AppendChildLast(outline);
// Добавить узел страницы
doc.AppendChildLast(page);
// Сохранить документ OneNote
dataDir = dataDir + "BuildDocAndInsertImage_out.one";
doc.Save(dataDir);
Показывает, как создать документ с текстом.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Создаем объект класса Document
Document doc = new Document();
// Инициализировать объект класса Page
Page page = new Page(doc);
// Инициализировать объект класса Outline
Outline outline = new Outline(doc);
// Инициализировать объект класса OutlineElement
OutlineElement outlineElem = new OutlineElement(doc);
// Инициализируем объект класса TextStyle и устанавливаем свойства форматирования
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
// Инициализировать объект класса RichText и применить стиль текста
RichText text = new RichText(doc) { Text = "Hello OneNote text!", ParagraphStyle = textStyle };
// Добавляем узел RichText
outlineElem.AppendChildLast(text);
// Добавляем узел OutlineElement
outline.AppendChildLast(outlineElem);
// Добавляем узел Outline
page.AppendChildLast(outline);
// Добавить узел страницы
doc.AppendChildLast(page);
// Сохранить документ OneNote
dataDir = dataDir + "CreateDocWithSimpleRichText_out.one";
doc.Save(dataDir);
Показывает, как сохранить документ в различных форматах.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Инициализировать новый документ
Document doc = new Document() { AutomaticLayoutChangesDetectionEnabled = false };
// Инициализировать новую страницу
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// Стиль по умолчанию для всего текста в документе.
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
page.Title = new Title(doc)
{
TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
};
// Добавляем узел страницы
doc.AppendChildLast(page);
// Сохранение документа OneNote в разных форматах, установка размера шрифта текста и обнаружение изменений макета вручную.
doc.Save(dataDir + "ConsequentExportOperations_out.html");
doc.Save(dataDir + "ConsequentExportOperations_out.pdf");
doc.Save(dataDir + "ConsequentExportOperations_out.jpg");
textStyle.FontSize = 11;
doc.DetectLayoutChanges();
doc.Save(dataDir + "ConsequentExportOperations_out.bmp");
Показывает, как сохранить документ в формате html с сохранением всех ресурсов (css/шрифты/изображения) с помощью пользовательских обратных вызовов.
// Код ниже создает папку «documentFolder», содержащую document.html, папку «css» с файлом «style.css», папку «images» с изображениями и папку «fonts» со шрифтами.
// Файл 'style.css' будет содержать в конце следующую строку "/* Эта строка добавляется к потоку вручную пользователем */"
var savingCallbacks = new UserSavingCallbacks()
{
RootFolder = "documentFolder",
CssFolder = "css",
KeepCssStreamOpened = true,
ImagesFolder = "images",
FontsFolder = "fonts"
};
var options = new HtmlSaveOptions
{
FontFaceTypes = FontFaceType.Ttf,
CssSavingCallback = savingCallbacks,
FontSavingCallback = savingCallbacks,
ImageSavingCallback = savingCallbacks
};
if (!Directory.Exists(savingCallbacks.RootFolder))
{
Directory.CreateDirectory(savingCallbacks.RootFolder);
}
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
var document = new Document(Path.Combine(dataDir, "Aspose.one"));
using (var stream = File.Create(Path.Combine(savingCallbacks.RootFolder, "document.html")))
{
document.Save(stream, options);
}
using (var writer = new StreamWriter(savingCallbacks.CssStream))
{
writer.WriteLine();
writer.WriteLine("/* This line is appended to stream manually by user */");
}
Показывает, как привязать гиперссылку к тексту.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Tasks();
// Создаем объект класса Document
Document doc = new Document();
RichText titleText = new RichText() { ParagraphStyle = ParagraphStyle.Default }.Append("Title!");
Outline outline = new Outline()
{
MaxWidth = 200,
MaxHeight = 200,
VerticalOffset = 100,
HorizontalOffset = 100
};
TextStyle textStyleRed = new TextStyle
{
FontColor = Color.Red,
FontName = "Arial",
FontSize = 10,
};
TextStyle textStyleHyperlink = new TextStyle
{
IsHyperlink = true,
HyperlinkAddress = "www.google.com"
};
RichText text = new RichText() { ParagraphStyle = ParagraphStyle.Default }
.Append("This is ", textStyleRed)
.Append("hyperlink", textStyleHyperlink)
.Append(". This text is not a hyperlink.", TextStyle.Default);
OutlineElement outlineElem = new OutlineElement();
outlineElem.AppendChildLast(text);
// Добавляем элементы контура
outline.AppendChildLast(outlineElem);
// Инициализировать объект класса Title
Title title = new Title() { TitleText = titleText };
// Инициализировать объект класса Page
Page page = new Note.Page() { Title = title };
// Добавляем узел Outline
page.AppendChildLast(outline);
// Добавить узел страницы
doc.AppendChildLast(page);
// Сохранить документ OneNote
dataDir = dataDir + "AddHyperlink_out.one";
doc.Save(dataDir);
Показывает, как получить доступ к содержимому документа с помощью посетителя.
public static void Run()
{
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Откройте документ, который мы хотим преобразовать.
Document doc = new Document(dataDir + "Aspose.one");
// Создаем объект, наследуемый от класса DocumentVisitor.
MyOneNoteToTxtWriter myConverter = new MyOneNoteToTxtWriter();
// Это хорошо известный шаблон Посетитель. Заставьте модель принять посетителя.
// Модель будет перебирать сама себя, вызывая соответствующие методы
// на объекте посетителя (это называется посещением).
//
// Обратите внимание, что каждый узел в объектной модели имеет метод Accept, поэтому посещение
// может выполняться не только для всего документа, но и для любого узла в документе.
doc.Accept(myConverter);
// После завершения посещения мы можем получить результат операции,
// что в этом примере накопилось у посетителя.
Console.WriteLine(myConverter.GetText());
Console.WriteLine(myConverter.NodeCount);
}
/// <summary>
/// Простая реализация сохранения документа в текстовом формате. Реализовано как посетитель.
/// </summary>
public class MyOneNoteToTxtWriter : DocumentVisitor
{
public MyOneNoteToTxtWriter()
{
nodecount = 0;
mIsSkipText = false;
mBuilder = new StringBuilder();
}
/// <summary>
/// Получает обычный текст документа, который накопил посетитель.
/// </summary>
public string GetText()
{
return mBuilder.ToString();
}
/// <summary>
/// Добавляет текст к текущему выводу. Учитывает включенный/отключенный выходной флаг.
/// </summary>
private void AppendText(string text)
{
if (!mIsSkipText)
{
mBuilder.AppendLine(text);
}
}
/// <summary>
/// Вызывается, когда в документе встречается узел RichText.
/// </summary>
public override void VisitRichTextStart(RichText run)
{
++nodecount;
AppendText(run.Text);
}
/// <summary>
/// Вызывается, когда в документе встречается узел Document.
/// </summary>
public override void VisitDocumentStart(Document document)
{
++nodecount;
}
/// <summary>
/// Вызывается, когда в документе встречается узел страницы.
/// </summary>
public override void VisitPageStart(Page page)
{
++nodecount;
this.AppendText($"*** Page '{page.Title?.TitleText?.Text ?? "(no title)"}' ***");
}
/// <summary>
/// Вызывается, когда обработка узла Page завершена.
/// </summary>
public override void VisitPageEnd(Page page)
{
this.AppendText(string.Empty);
}
/// <summary>
/// Вызывается, когда в документе встречается узел Title.
/// </summary>
public override void VisitTitleStart(Title title)
{
++nodecount;
}
/// <summary>
/// Вызывается, когда в документе встречается узел изображения.
/// </summary>
public override void VisitImageStart(Image image)
{
++nodecount;
}
/// <summary>
/// Вызывается, когда в документе встречается узел OutlineGroup.
/// </summary>
public override void VisitOutlineGroupStart(OutlineGroup outlineGroup)
{
++nodecount;
}
/// <summary>
/// Вызывается, когда в документе встречается узел Outline.
/// </summary>
public override void VisitOutlineStart(Outline outline)
{
++nodecount;
}
/// <summary>
/// Вызывается, когда в документе встречается узел OutlineElement.
/// </summary>
public override void VisitOutlineElementStart(OutlineElement outlineElement)
{
++nodecount;
}
/// <summary>
/// Получает общее количество узлов посетителя
/// </summary>
public Int32 NodeCount
{
get { return this.nodecount; }
}
private readonly StringBuilder mBuilder;
private bool mIsSkipText;
private Int32 nodecount;
}
Смотрите также
- class CompositeNode<T>
- class Page
- interface INotebookChildNode
- пространство имен Aspose.Note
- сборка Aspose.Note