Converter arquivo PDF para outros formatos

Converter PDF para EPUB

EPUB (abreviação de Electronic Publication) é um padrão de e-book gratuito e aberto do International Digital Publishing Forum (IDPF). Os arquivos têm a extensão .epub. EPUB é projetado para conteúdo redimensionável, o que significa que um leitor EPUB pode otimizar o texto para um dispositivo de exibição específico. EPUB também suporta conteúdo de layout fixo. O formato é destinado como um formato único que editoras e casas de conversão podem usar internamente, bem como para distribuição e venda. Ele substitui o padrão Open eBook.

Aspose.PDF para C++ também suporta o recurso de converter documentos PDF para o formato EPUB. Aspose.PDF para C++ possui uma classe chamada EpubSaveOptions que pode ser usada como o segundo argumento para o método Document.Save(..), para gerar um arquivo EPUB. Por favor, tente usar o seguinte trecho de código para cumprir este requisito com C++.

void ConvertPDFtoEPUB()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo de entrada
    String infilename("sample.pdf");
    // String para nome do arquivo de saída
    String outfilename("PDFToEPUB_out.epub");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Salvar arquivo PDF no formato EPUB
    document->Save(_dataDir + outfilename, SaveFormat::Epub);
    std::clog << __func__ << ": Finish" << std::endl;
}

Converter PDF para LaTeX/TeX

Aspose.PDF para C++ suporta a conversão de PDF para LaTeX/TeX. O formato de arquivo LaTeX é um formato de arquivo de texto com marcação especial e é usado no sistema de preparação de documentos baseado em TeX para composição tipográfica de alta qualidade.

Para converter arquivos PDF para TeX, o Aspose.PDF possui a classe LaTeXSaveOptions que fornece a propriedade OutDirectoryPath para salvar imagens temporárias durante o processo de conversão.

O trecho de código a seguir mostra o processo de conversão de arquivos PDF para o formato TEX com C++.

void ConvertPDFtoLaTeX()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo de entrada
    String infilename("sample.pdf");
    // String para nome do arquivo de saída
    String outfilename("PDFToTeX_out.tex");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Instanciar opção de salvamento LaTex
    auto saveOptions = MakeObject<LaTeXSaveOptions>();

    // Definir o caminho do diretório de saída para o objeto de opção de salvamento
    saveOptions->set_OutDirectoryPath(_dataDir);

    // Salvar arquivo PDF no formato LaTex
    document->Save(_dataDir + outfilename, saveOptions);
    std::clog << __func__ << ": Finish" << std::endl;
}

Converter PDF para Texto

Aspose.PDF para C++ suporta a conversão de todo o documento PDF e página única para um arquivo de Texto.

Converter todo o documento PDF para arquivo de Texto

Você pode converter um documento PDF para um arquivo TXT usando a classe TextAbsorber.

O trecho de código a seguir explica como extrair os textos de todas as páginas.

void ConvertPDFDocToTXT()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo de entrada
    String infilename("sample.pdf");
    // String para nome do arquivo de saída
    String outfilename("input_Text_Extracted_out.txt");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto ta = MakeObject<TextAbsorber>();
    ta->Visit(document);
    // Salvar o texto extraído no arquivo de texto
    System::IO::File::WriteAllText(_dataDir + outfilename, ta->get_Text());
    std::clog << __func__ << ": Finish" << std::endl;
}

Converter página PDF para arquivo de texto

Você pode converter um documento PDF para um arquivo TXT com Aspose.PDF para C++. Você deve usar a classe TextAbsorber para resolver esta tarefa.

O trecho de código a seguir explica como extrair os textos das páginas específicas.

void ConvertPDFPagestoTXT()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo de entrada
    String infilename("sample-4pages.pdf");
    // String para nome do arquivo de saída
    String outfilename("sample-4pages_out.txt");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    auto ta = MakeObject<TextAbsorber>();

    auto pages = { 1, 3, 4 };
    try {
    for (auto page : pages)
    {
    ta->Visit(document->get_Pages()->idx_get(page));
    }
    // Salvar o texto extraído em arquivo de texto
    auto text = ta->get_Text();
    System::IO::File::WriteAllText(_dataDir + outfilename, text);
    }
    catch (Exception ex) {
    std::cerr << ex->get_Message() << std::endl;
    }
    std::clog << __func__ << ": Finish" << std::endl;
}

Converter PDF para XPS

Aspose.PDF para C++ oferece a possibilidade de converter arquivos PDF para o formato XPS. Vamos tentar usar o trecho de código apresentado para converter arquivos PDF para o formato XPS com C++.

O tipo de arquivo XPS está principalmente associado à Especificação de Papel XML pela Microsoft Corporation. A Especificação de Papel XML (XPS), anteriormente codinome Metro e subsumindo o conceito de marketing Caminho de Impressão da Próxima Geração (NGPP), é a iniciativa da Microsoft para integrar a criação e visualização de documentos no sistema operacional Windows.

Para converter arquivos PDF para XPS, Aspose.PDF tem a classe XpsSaveOptions que é usada como o segundo argumento do método Document.Save(..) para gerar o arquivo XPS.

O trecho de código a seguir mostra o processo de conversão de um arquivo PDF para o formato XPS.

void ConvertPDFtoXPS()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para o nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para o nome do arquivo de entrada
    String infilename("sample.pdf");
    // String para o nome do arquivo de saída
    String outfilename("PDFToXPS_out.xps");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Instanciar opção de salvamento LaTex
    auto saveOptions = MakeObject<XpsSaveOptions>();

    // Salvar arquivo PDF no formato XPS
    document->Save(_dataDir + outfilename, saveOptions);
    std::clog << __func__ << ": Finish" << std::endl;
}