Tips'n Tricks

Convertire multipli doc in pdf

Problema: ho tot mila documenti word da convertire in pdf

necessario: office 2k7 con il plugin "save as pdf" installato.

http://www.microsoft.com/downloads/details.aspx?FamilyID=f1fc413c-6d89-4f15-991b-63b07ba5f2e5&displaylang=en

 

 

Approccio con js (si potrebbe tentare anche con vba)

 

Mettere tutti i files da convertire in una directory.

creare un file  SaveAsPdf.js

con dentro il seguente

---------- cut ----------------------

var fso = new ActiveXObject("Scripting.FileSystemObject");
var docPath = WScript.Arguments(0);
docPath = fso.GetAbsolutePathName(docPath);

var pdfPath = docPath.replace(/\.doc[^.]*$/, ".pdf");
var objWord = null;

try
{
    WScript.Echo("Saving '" + docPath + "' as '" + pdfPath + "'...");

    objWord = new ActiveXObject("Word.Application");
    objWord.Visible = false;

    var objDoc = objWord.Documents.Open(docPath);

    var wdFormatPdf = 17;
    objDoc.SaveAs(pdfPath, wdFormatPdf);
    objDoc.Close();

    WScript.Echo("Done.");
}
finally
{
    if (objWord != null)
    {
        objWord.Quit();
    }

}

---------- cut ----------------------

creare un file lancio.bat

con dentro il seguente

---------- cut ----------------------

@echo off
cls
echo %%~dp0 is (curpath) "%~dp0"

echo elenco files trovati nella dir:
echo .

for /r . %%f in (*.doc, *.docx) do (
   @echo Processo "%%~dpnxf"
   cscript.exe //nologo SaveAsPDF.js "%%~dpnxf"
)

---------- cut ----------------------

avviare il file lancio.bat ed attendere il temine del processo.