Trabalhar com opções e aparência de documentos do Word

Às vezes, pode ser necessário alterar a aparência de um documento, por exemplo, definir preferências de idioma ou o número de linhas por página.Aspose.Words fornece a capacidade de controlar como o documento será exibido, bem como algumas opções adicionais. Este artigo descreve essas possibilidades.

Definir Opções De Apresentação Do Documento

Você pode controlar como um documento será exibido em Microsoft Word usando a classe ViewOptions. Por exemplo, pode definir um valor de zoom do documento utilizando a propriedade ZoomPercent ou o modo de visualização utilizando a propriedade ViewType.

O exemplo de código a seguir mostra como garantir que um documento seja exibido em 50% quando aberto em Microsoft Word:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directories.
System::String inputDataDir = GetInputDataDir_WorkingWithDocument();
System::String outputDataDir = GetOutputDataDir_WorkingWithDocument();
// Load the template document.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"TestFile.doc");
// Set view option.
doc->get_ViewOptions()->set_ViewType(ViewType::PageLayout);
doc->get_ViewOptions()->set_ZoomPercent(50);
System::String outputPath = outputDataDir + u"SetViewOption.doc";
// Save the finished document.
doc->Save(outputPath);

Definir Opções De Apresentação Da Página

Se pretender definir o número de caracteres por linha, utilize a propriedade CharactersPerLine. Você também pode definir o número de linhas por página para um documento do Word – use a propriedade LinesPerPage para obter ou definir o número de linhas por página na grade do documento.

O exemplo de código a seguir mostra como definir o número de caracteres por linha e o número de linhas por página para um documento Microsoft Word:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directories.
System::String inputDataDir = GetInputDataDir_WorkingWithDocument();
System::String outputDataDir = GetOutputDataDir_WorkingWithDocument();
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
//Set the layout mode for a section allowing to define the document grid behavior
//Note that the Document Grid tab becomes visible in the Page Setup dialog of MS Word if any Asian language is defined as editing language.
doc->get_FirstSection()->get_PageSetup()->set_LayoutMode(SectionLayoutMode::Grid);
//Set the number of characters per line in the document grid.
doc->get_FirstSection()->get_PageSetup()->set_CharactersPerLine(30);
//Set the number of lines per page in the document grid.
doc->get_FirstSection()->get_PageSetup()->set_LinesPerPage(10);
System::String outputPath = outputDataDir + u"DocumentPageSetup.doc";
doc->Save(outputPath);

Definir Preferências De Idioma

Exibir um documento em Microsoft Word depende de quais idiomas são definidos como padrão para este documento. Se nenhum idioma for definido como predefinido, Microsoft Word obtém informações da caixa de diálogo" Definir preferências de idioma do Office", que, por exemplo, pode ser encontrada em" Ficheiro de Opções de arquivo de Opções de idioma " em Microsoft Word 2019.

Com Aspose.Words, Você também pode configurar preferências de idioma usando a classe LanguagePreferences. Observe também que, para a exibição correta do seu documento, é necessário definir a versão Microsoft Word que o processo de carregamento do documento deve corresponder – isso pode ser feito usando a propriedade MswVersion.

O exemplo de código a seguir mostra como adicionar Japonês aos idiomas de edição:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Create a new LoadOptions object.
System::SharedPtr<LoadOptions> loadOptions = System::MakeObject<LoadOptions>();
// Set language preferences that will be used when document is loading.
loadOptions->get_LanguagePreferences()->AddEditingLanguage(EditingLanguage::Japanese);
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"languagepreferences.docx", loadOptions);

O exemplo de código a seguir mostra como definir o russo como o idioma de edição padrão:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directory.
System::SharedPtr<LoadOptions> loadOptions = System::MakeObject<LoadOptions>();
loadOptions->get_LanguagePreferences()->set_DefaultEditingLanguage(EditingLanguage::Russian);
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"languagepreferences.docx", loadOptions);
int32_t localeId = doc->get_Styles()->get_DefaultFont()->get_LocaleId();
if (localeId == static_cast<int32_t>(EditingLanguage::Russian))
{
std::cout << "The document either has no any language set in defaults or it was set to Russian originally." << std::endl;
}
else
{
std::cout << "The document default language was set to another than Russian language originally, so it is not overridden." << std::endl;
}

Otimizar um documento para uma versão específica do Word

O método OptimizeFor permite otimizar o conteúdo do documento, bem como o comportamento padrão Aspose.Words para uma versão específica de Microsoft Word. Pode utilizar este método para evitar que Microsoft Word exiba a faixa de opções “Modo de compatibilidade” aquando do Carregamento do documento. Observe que também pode ser necessário definir a propriedade Compliance Como Iso29500_2008_Transitional ou superior.

O exemplo de código a seguir mostra como otimizar o conteúdo do documento para Microsoft Word 2016:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"TestFile.docx");
doc->get_CompatibilityOptions()->OptimizeFor(MsWordVersion::Word2016);
System::String outputPath = outputDataDir + u"SetCompatibilityOptions.docx";
// Save the document to disk.
doc->Save(outputPath);