Abrir Apresentações em Python
Introdução
Aspose.Slides para Python via .NET pode carregar apresentações PowerPoint e OpenDocument a partir de arquivos e streams. Após uma apresentação ser carregada, você pode inspecionar sua estrutura, editar slides, gerenciar recursos e salvá-la no formato original ou em outro formato suportado.
O comportamento de carregamento pode ser personalizado através da classe LoadOptions. Por exemplo, você pode fornecer uma senha de abertura, manter objetos binários grandes fora da memória ou omitir dados binários incorporados.
Abrir Apresentações
Depois de carregar um arquivo ou stream, você pode determinar seu formato original de apresentação para escolher como sua aplicação o processa.
Para abrir uma apresentação existente, passe seu caminho de arquivo ao construtor Presentation. Use uma instrução with para que manipuladores de arquivo, dados temporários e outros recursos sejam liberados imediatamente.
O exemplo Python a seguir mostra como abrir uma apresentação e obter a contagem de slides:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
print("Slide count: " + str(len(presentation.slides)))
Abrir Apresentações Protegidas por Senha
Uma senha de abertura criptografa o conteúdo da apresentação. Para carregar a apresentação completa, atribua a senha correta a LoadOptions.password e passe as opções ao construtor Presentation. O carregamento falha quando a senha está ausente ou incorreta.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.password = "open_password"
with slides.Presentation("encrypted-presentation.pptx", load_options) as presentation:
print("Slide count: " + str(len(presentation.slides)))
Para detecção, validação e fluxos de trabalho de criptografia de senha, veja Proteção por Senha de Apresentações. Se uma apresentação criptografada foi deliberadamente salva com propriedades de documento públicas, essas propriedades podem ser lidas sem senha; veja Gerenciar Propriedades da Apresentação.
Abrir Apresentações Grandes
LoadOptions.blob_management_options controla como Aspose.Slides manipula objetos binários grandes, como imagens, áudio e vídeo. Você pode manter o arquivo de origem bloqueado, permitir arquivos temporários e limitar a quantidade de dados BLOB retidos na memória.
Este código Python demonstra como carregar uma apresentação grande (por exemplo, 2 GB):
import aspose.slides as slides
file_path = "large-presentation.pptx"
load_options = slides.LoadOptions()
load_options.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED
load_options.blob_management_options.is_temporary_files_allowed = True
load_options.blob_management_options.max_blobs_bytes_in_memory = 10 * 1024 * 1024
with slides.Presentation(file_path, load_options) as presentation:
presentation.slides[0].name = "Large presentation"
presentation.save("large-presentation-copy.pptx", slides.export.SaveFormat.PPTX)
Note
Com PresentationLockingBehavior.KEEP_LOCKED, o arquivo de origem permanece bloqueado até que o objeto Presentation seja descartado. Não mova, sobrescreva ou exclua o arquivo de origem enquanto esse objeto estiver ativo.
Aspose.Slides pode copiar o conteúdo de um stream de entrada ao carregá-lo. Para apresentações grandes, um caminho de arquivo geralmente é mais eficiente que um stream. Consulte Gerenciar BLOBs para opções adicionais de armazenamento e gerenciamento de memória.
Carregar Apresentações sem Objetos Binários Incorporados
Uma apresentação pode conter dados binários incorporados que uma aplicação não precisa ou não deseja manter. Exemplos incluem:
- projetos VBA, disponíveis através de Presentation.vba_project;
- dados OLE incorporados, disponíveis através de OleEmbeddedDataInfo.embedded_file_data;
- dados de controle ActiveX, disponíveis através de Control.active_x_control_binary.
Defina LoadOptions.delete_embedded_binary_objects como True para remover esses dados binários durante o carregamento. Salve a apresentação carregada para persistir o resultado sanitizado.
Esta opção reduz a exposição a cargas úteis incorporadas indesejadas, mas não é um sistema completo de detecção de malware ou sanitização de conteúdo.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.delete_embedded_binary_objects = True
with slides.Presentation("presentation-with-embedded-data.pptx", load_options) as presentation:
presentation.save("presentation-without-embedded-data.pptx", slides.export.SaveFormat.PPTX)
Perguntas Frequentes
Como posso saber que um arquivo está corrompido e não pode ser aberto?
Aspose.Slides gera uma exceção de análise ou de formato durante o carregamento. Trate essa falha separadamente de um erro de senha incorreta, para que a aplicação possa relatar a causa com precisão.
O que acontece se fontes necessárias estiverem faltando?
A apresentação ainda pode ser carregada, mas a renderização e a exportação podem substituir fontes. Você pode configurar substituição de fontes ou fornecer fontes personalizadas para tornar a saída mais previsível.
Carregar uma apresentação também carrega sua mídia incorporada?
Áudios e vídeos incorporados ficam disponíveis através do modelo de objetos da apresentação. Recursos externos são resolvidos de acordo com o comportamento padrão de carregamento de recursos e podem estar indisponíveis se seus locais não puderem ser acessados.