Hoje, vou destacar os principais recursos introduzidos na versão Aspose.Words for C++ 19.10:

Salvar documento do Word como MutiPage TIFF

Uma das coisas úteis que você pode precisar fazer com seu documento do Word (como DOCX, DOC, RTF e muito mais) é uma conversão para arquivo(s) de imagem. Por exemplo, se você tiver que apresentar seu documento do Word em um formato legível e imprimível, mas não editável (por exemplo, para publicação na Web). Uma das abordagens simples que você pode usar é uma conversão para um arquivo TIFF de várias páginas. Consulte o artigo a seguir para saber como converter um documento do Word para o formato TIFF usando o Aspose.Words para C++: Converter documento do Word em imagem TIFF de várias páginas

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-words/Aspose.Words-for-.NET
// Salve o documento como TIFF de várias páginas.
doc.Save(dataDir + "TestFile Multipage TIFF_out.tiff");

Converter uma imagem em PDF usando C++

Agora é possível criar um documento PDF de uma imagem usando Aspose.Words para C++ API. O exemplo de código mencionado no artigo a seguir mostra como é fácil fazer com Aspose.Words para C++. O código permite converter imagens de quadro único, como JPEG, PNG, BMP, EMF ou WMF, bem como imagens TIFF de vários quadros e GIF para PDF. Converter uma imagem em PDF

Limite de controle para binarização TIFF usando C++

O processo de reduzir a informação contida na imagem em tons de cinza de 256 tons de cinza para 2 que são preto e branco e convertê-la para a imagem binária é a binarização. Quando um documento é convertido para o formato de arquivo TIFF, você pode controlar o limite para a binarização TIFF usando a propriedade ImageSaveOptions.ThresholdForFloydSteinbergDithering. O valor padrão desta propriedade é 128. Quanto maior o valor, mais escura a imagem. O exemplo de código a seguir mostra como usar essa propriedade para Control Threshold for TIFF Binarization.

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);

Salvar imagem em um bit por pixel usando C++

O exemplo de código a seguir demonstra como salvar a imagem em um bit por pixel definindo PixelFormat como 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);

Criptografar arquivos DOC ou DOT com senha usando C++

A classe DocSaveOptions é usada para especificar opções adicionais ao salvar um documento no formato DOC ou DOT. Usando essa classe, você pode definir a senha para um documento criptografado e ignorar os dados do RoutingSlip enquanto salva o documento. O exemplo de código abaixo mostra como definir a senha para criptografar o documento usando o método de criptografia 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);

Criptografar arquivos DOCX com senha usando C++

A classe OoXMLSaveOptions oferece a oportunidade de salvar qualquer documento criptografado com a senha. Usando esta classe, você pode definir a senha usando a propriedade OoxmlSaveOptions.Password enquanto salva o documento. O exemplo de código a seguir demonstra como definir a senha e salvar o documento no formato 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);

Extrair conteúdo usando o DocumentVisitor

Agora você pode usar a classe DocumentVisitor para implementar esse cenário de uso. Essa classe corresponde ao conhecido padrão de design Visitor. Com o DocumentVisitor, você pode definir e executar operações personalizadas que exigem enumeração na árvore do documento. Para mais detalhes, verifique: Como extrair conteúdo usando o DocumentVisitor

Obter espaçamento entre linhas da fonte

O espaçamento entre linhas de uma fonte é a distância vertical entre as linhas de base de duas linhas consecutivas de texto. Assim, o espaçamento entre linhas inclui o espaço em branco entre as linhas junto com a altura do próprio caractere. A propriedade LineSpacing foi introduzida na classe Font para Obter o valor do espaçamento entre linhas da fonte conforme mostrado no exemplo abaixo:

// Inicialize o documento.
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");

// Obtenha o espaçamento entre linhas.
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;

Os recursos que você pode precisar para realizar suas tarefas:

Mantendo a tradição Aspose, você está convidado a moldar os próximos lançamentos da API Aspose.Words for C++ postando suas sugestões e preocupações no Fórum de suporte do Aspose.Words for C++.