fdo#36313: allow passing FilterOptions via cli
Examples: --infilter="Text (encoded):UTF8,LF,,," --convert-to "html:XHTML Writer File:UTF8" --convert-to "txt:Text (encoded):UTF8" Change-Id: I69a0524ef63f6d486637d68280331528d1001b56
This commit is contained in:
committed by
Stephan Bergmann
parent
c12a78e42e
commit
45ba4d79d9
@@ -109,14 +109,17 @@ namespace desktop
|
||||
"--unaccept=<accept-string>\n"\
|
||||
" Close an acceptor that was created with --accept=<accept-string>\n"\
|
||||
" Use --unnaccept=all to close all open acceptors\n"\
|
||||
"--infilter=<filter>\n"\
|
||||
"--infilter=<filter>[:filter_options]\n"\
|
||||
" Force an input filter type if possible\n"\
|
||||
" Eg. --infilter=\"Calc Office Open XML\"\n"\
|
||||
"--convert-to output_file_extension[:output_filter_name] [--outdir output_dir] files\n"\
|
||||
" --infilter=\"Text (encoded):UTF8,LF,,,\"\n"\
|
||||
"--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files\n"\
|
||||
" Batch convert files.\n"\
|
||||
" If --outdir is not specified then current working dir is used as output_dir.\n"\
|
||||
" Eg. --convert-to pdf *.doc\n"\
|
||||
" --convert-to pdf:writer_pdf_Export --outdir /home/user *.doc\n"\
|
||||
" --convert-to \"html:XHTML Writer File:UTF8\" *.doc\n"\
|
||||
" --convert-to \"txt:Text (encoded):UTF8\" *.doc\n"\
|
||||
"--print-to-file [-printer-name printer_name] [--outdir output_dir] files\n"\
|
||||
" Batch print files to file.\n"\
|
||||
" If --outdir is not specified then current working dir is used as output_dir.\n"\
|
||||
|
@@ -375,7 +375,21 @@ bool DispatchWatcher::executeDispatchRequests( const DispatchList& aDispatchRequ
|
||||
sal_Int32 nIndex = aArgs.getLength();
|
||||
aArgs.realloc(nIndex+1);
|
||||
aArgs[nIndex].Name = "FilterName";
|
||||
aArgs[nIndex].Value <<= aForcedInputFilter;
|
||||
|
||||
sal_Int32 nFilterOptionsIndex = aForcedInputFilter.indexOf( ':' );
|
||||
if( 0 < nFilterOptionsIndex )
|
||||
{
|
||||
aArgs[nIndex].Value <<= aForcedInputFilter.copy( 0, nFilterOptionsIndex );
|
||||
|
||||
nIndex = aArgs.getLength();
|
||||
aArgs.realloc(nIndex+1);
|
||||
aArgs[nIndex].Name = "FilterOptions";
|
||||
aArgs[nIndex].Value <<= aForcedInputFilter.copy( nFilterOptionsIndex+1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
aArgs[nIndex].Value <<= aForcedInputFilter;
|
||||
}
|
||||
}
|
||||
|
||||
// This is a synchron loading of a component so we don't have to deal with our statusChanged listener mechanism.
|
||||
@@ -449,12 +463,23 @@ bool DispatchWatcher::executeDispatchRequests( const DispatchList& aDispatchRequ
|
||||
aFilter = impl_GuessFilter( aName, aOutFile );
|
||||
}
|
||||
|
||||
Sequence<PropertyValue> conversionProperties( 2 );
|
||||
sal_Int32 nFilterOptionsIndex = aFilter.indexOf( ':' );
|
||||
Sequence<PropertyValue> conversionProperties( 0 < nFilterOptionsIndex ? 3 : 2 );
|
||||
conversionProperties[0].Name = "Overwrite";
|
||||
conversionProperties[0].Value <<= sal_True;
|
||||
|
||||
conversionProperties[1].Name = "FilterName";
|
||||
conversionProperties[1].Value <<= aFilter;
|
||||
if( 0 < nFilterOptionsIndex )
|
||||
{
|
||||
conversionProperties[1].Value <<= aFilter.copy( 0, nFilterOptionsIndex );
|
||||
|
||||
conversionProperties[2].Name = "FilterOptions";
|
||||
conversionProperties[2].Value <<= aFilter.copy( nFilterOptionsIndex+1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
conversionProperties[1].Value <<= aFilter;
|
||||
}
|
||||
|
||||
OUString aTempName;
|
||||
FileBase::getSystemPathFromFileURL( aName, aTempName );
|
||||
|
Reference in New Issue
Block a user