diff --git a/PdfTool/pdftoolabstractapplication.cpp b/PdfTool/pdftoolabstractapplication.cpp index 1c73c8f..17b4c96 100644 --- a/PdfTool/pdftoolabstractapplication.cpp +++ b/PdfTool/pdftoolabstractapplication.cpp @@ -228,6 +228,7 @@ void PDFToolAbstractApplication::initializeCommandLineParser(QCommandLineParser* if (optionFlags.testFlag(TextSpeech)) { + parser->addOption(QCommandLineOption("audio-format", "Audio fromat, valid values are wav/mp3.", "audio format", "mp3")); parser->addOption(QCommandLineOption("mark-page-numbers", "Mark page numbers in audio stream.")); parser->addOption(QCommandLineOption("say-page-numbers", "Say page numbers.")); parser->addOption(QCommandLineOption("say-struct-titles", "Say titles extracted from structure tree (only for tagged pdf).")); @@ -388,6 +389,13 @@ PDFToolOptions PDFToolAbstractApplication::getOptions(QCommandLineParser* parser if (optionFlags.testFlag(TextSpeech)) { + options.textSpeechAudioFormat = parser->value("audio-format"); + if (options.textSpeechAudioFormat != "wav" && options.textSpeechAudioFormat != "mp3") + { + PDFConsole::writeError(PDFToolTranslationContext::tr("Unknown audio format '%1'. Defaulting to mp3 audio format.").arg(options.textSpeechAudioFormat), options.outputCodec); + options.textSpeechAudioFormat = "mp3"; + } + options.textSpeechMarkPageNumbers = parser->isSet("mark-page-numbers"); options.textSpeechSayPageNumbers = parser->isSet("say-page-numbers"); options.textSpeechSayStructTitles = parser->isSet("say-struct-titles"); diff --git a/PdfTool/pdftoolabstractapplication.h b/PdfTool/pdftoolabstractapplication.h index f625711..5a7a0f9 100644 --- a/PdfTool/pdftoolabstractapplication.h +++ b/PdfTool/pdftoolabstractapplication.h @@ -106,6 +106,7 @@ struct PDFToolOptions bool textSpeechSayStructAlternativeDescription = false; bool textSpeechSayStructExpandedForm = false; bool textSpeechSayStructActualText = false; + QString textSpeechAudioFormat = "mp3"; /// Returns page range. If page range is invalid, then \p errorMessage is empty. /// \param pageCount Page count diff --git a/PdfTool/pdftoolaudiobook.cpp b/PdfTool/pdftoolaudiobook.cpp index 90b7705..2e5e4e1 100644 --- a/PdfTool/pdftoolaudiobook.cpp +++ b/PdfTool/pdftoolaudiobook.cpp @@ -398,7 +398,7 @@ int PDFToolAudioBook::createAudioBook(const PDFToolOptions& options, pdf::PDFDoc } QFileInfo info(options.document); - QString outputFile = QString("%1/%2.wav").arg(info.path(), info.completeBaseName()); + QString outputFile = QString("%1/%2.%3").arg(info.path(), info.completeBaseName(), options.textSpeechAudioFormat); BSTR outputFileName = (BSTR)outputFile.utf16(); ISpeechFileStream* stream = nullptr;