Сегодня я расскажу об основных функциях, представленных в выпуске Aspose.Words for C++ 19.10:

Сохранить документ Word как MutiPage TIFF

Одна из полезных вещей, которую вам может понадобиться сделать с документом Word (например, DOCX, DOC, RTF и многими другими), — это преобразование в файл(ы) изображения. Например, если вам нужно представить документ Word в удобном для чтения и печати, но не редактируемом формате (например, для публикации в Интернете). Один из простых подходов, который вы можете использовать, — это преобразование в многостраничный файл TIFF. Пожалуйста, обратитесь к следующей статье, чтобы узнать, как преобразовать документ Word в формат TIFF с помощью Aspose.Words for C++: Преобразовать документ Word в многостраничное изображение TIFF

// Полные примеры и файлы данных см. на странице https://github.com/aspose-words/Aspose.Words-for-.NET.
// Сохраните документ как многостраничный TIFF.
doc.Save(dataDir + "TestFile Multipage TIFF_out.tiff");

Преобразование изображения в PDF с помощью C++

Теперь можно создать PDF-документ из изображения с помощью Aspose.Words for C++ API. Пример кода, упомянутый в следующей статье, показывает, как легко это сделать с помощью Aspose.Words для C++. Код позволяет преобразовывать однокадровые изображения, такие как JPEG, PNG, BMP, EMF или WMF, а также многокадровые изображения TIFF и GIF в PDF. Преобразовать изображение в PDF

Порог управления для бинаризации TIFF с использованием C++

Процесс уменьшения информации, содержащейся в изображении в градациях серого, с 256 оттенков серого до 2, которые являются черными и белыми, и преобразования ее в двоичное изображение называется бинаризацией. Когда документ преобразуется в формат файла TIFF, вы можете управлять порогом бинаризации TIFF с помощью свойства ImageSaveOptions.ThresholdForFloydSteinbergDithering. Значение этого свойства по умолчанию — 128. Чем выше значение, тем темнее изображение. В следующем примере кода показано, как использовать это свойство для управления пороговым значением для бинаризации TIFF.

System::SharedPtr<ImageSaveOptions> options = System::MakeObject<ImageSaveOptions>(SaveFormat::Tiff);
options->set_TiffCompression(TiffCompression::Ccitt3);
options->set_ImageColorMode(ImageColorMode::Grayscale);
options->set_TiffBinarizationMethod(ImageBinarizationMethod::FloydSteinbergDithering);
options->set_ThresholdForFloydSteinbergDithering(254);

System::String outputPath = outputDataDir + u"ImageColorFilters.ExposeThresholdControlForTiffBinarization.tiff";
doc->Save(outputPath, options);

Сохранить изображение в один бит на пиксель с помощью С++

В следующем примере кода показано, как сохранить изображение с одним битом на пиксель, задав для PixelFormat значение Format1bppIndexed.

System::SharedPtr<ImageSaveOptions> opt = System::MakeObject<ImageSaveOptions>(SaveFormat::Png);
opt->set_PageIndex(1);
opt->set_ImageColorMode(ImageColorMode::BlackAndWhite);
opt->set_PixelFormat(ImagePixelFormat::Format1bppIndexed);

System::String outputPath = outputDataDir + u"ImageColorFilters.SaveImageToOnebitPerPixel.png";
doc->Save(outputPath, opt);

Зашифровать файлы DOC или DOT с помощью пароля с помощью C++

Класс DocSaveOptions используется для указания дополнительных параметров при сохранении документа в формате DOC или DOT. Используя этот класс, вы можете установить пароль для зашифрованного документа и игнорировать данные RoutingSlip при сохранении документа. В приведенном ниже примере кода показано, как установить пароль для шифрования документа с использованием метода шифрования RC4.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<DocSaveOptions> docSaveOptions = System::MakeObject<DocSaveOptions>();
docSaveOptions->set_Password(u"password");
System::String outputPath = outputDataDir + u"WorkingWithDoc.EncryptDocumentWithPassword.doc";
doc->Save(outputPath, docSaveOptions);

Зашифровать файлы DOCX с помощью пароля с помощью C++

Класс OoXMLSaveOptions предоставляет возможность сохранить любой документ, зашифрованный паролем. Используя этот класс, вы можете установить пароль, используя свойство OoxmlSaveOptions.Password при сохранении документа. В следующем примере кода показано, как установить пароль и сохранить документ в формате DOCX.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<OoxmlSaveOptions> ooxmlSaveOptions = System::MakeObject<OoxmlSaveOptions>();
ooxmlSaveOptions->set_Password(u"password");
System::String outputPath = outputDataDir + u"WorkingWithOoxml.EncryptDocxWithPassword.docx";
doc->Save(outputPath, ooxmlSaveOptions);

Извлечение содержимого с помощью DocumentVisitor

Теперь вы можете использовать класс DocumentVisitor для реализации этого сценария использования. Этот класс соответствует известному шаблону проектирования Visitor. С помощью DocumentVisitor вы можете определять и выполнять пользовательские операции, требующие перечисления в дереве документов. Для получения более подробной информации, пожалуйста, проверьте: Как извлечь содержимое с помощью DocumentVisitor

Получить межстрочный интервал шрифта

Межстрочный интервал шрифта — это расстояние по вертикали между базовыми линиями двух последовательных строк текста. Таким образом, межстрочный интервал включает в себя пробел между строками вместе с высотой самого символа. Свойство LineSpacing было представлено в классе Font для Получить значение межстрочного интервала шрифта, как показано в приведенном ниже примере:

// Инициализировать документ.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->get_Font()->set_Name(u"Calibri");
builder->Writeln(u"qText");

// Получите межстрочный интервал.
System::SharedPtr<Font> font = builder->get_Document()->get_FirstSection()->get_Body()->get_FirstParagraph()->get_Runs()->idx_get(0)->get_Font();
//Console.WriteLine($"lineSpacing = {font.LineSpacing}");
std::cout << "lineSpacing = " << font->get_LineSpacing() << std::endl;

Смотрите также полезные ссылки

Ресурсы, которые могут вам понадобиться для выполнения ваших задач:

Сохраняя традицию Aspose, вы можете формировать будущие выпуски Aspose.Words for C++ API, размещая свои предложения и проблемы на форуме поддержки Aspose.Words for C++.