Sangeetha
Sangeetha

Reputation: 709

Text content in pdf is not converted using pdf2swf

I am running c# application in service mode. And i am using pdf2swf tool to convert odf to swf format. Images saved in pdf is converting. But if any test adding to pdf is not getting converted in service mode. But when run as UI mode(Consoleapplication.exe) then everything is getting converted.

        string inputFileName = this.Filename;
        string outputFileName = inputFileName.Replace("pdf", "swf");
        StringBuilder sb = new StringBuilder();

        sb.AppendFormat("{0} -o {1}", inputFileName, outputFileName);
        string executingDirPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).Replace("file:\\", "");
        string dataDirectoryPath = Path.Combine(executingDirPath, "pdf2swf.exe");
        ProcessStartInfo psi = new ProcessStartInfo(dataDirectoryPath, sb.ToString());
        psi.UseShellExecute = false;

        System.Diagnostics.Process pdf2swf = new System.Diagnostics.Process();
        pdf2swf.StartInfo = psi;
        pdf2swf.Start();
        pdf2swf.WaitForExit();
        pdf2swf.Close();
        pdf2swf.Dispose();

Regards Sangeetha

Upvotes: 2

Views: 419

Answers (3)

Id10T-ERROR
Id10T-ERROR

Reputation: 505

FYI. I recently had this problem (thought it was fonts not being embedded but actually was missing all text in converted swf). What fixed it for me was to set:

pi.UseShellExecute = false;

AND set the working directory;

pi.WorkingDirectory = "C:\windows\temp"; // path where read & write is

Upvotes: 0

Jarvan
Jarvan

Reputation: 1230

Direct using process to start pdf2swf.ext maybe had some privilege problems.I used another way to solve this problem,write a batch file,then running the batch file by process.

Batch file sample:

c:
cd C:\Program Files (x86)\SWFTools\
pdf2swf.exe -f -T 9 -t "%1" -o "%2"

Code in program:

 Process p = new Process();
 string path = basePath + "/plugin/ConvertToSwf.bat";//batch file path
 ProcessStartInfo pi = new ProcessStartInfo(path, filePath + " " + swfPath);//passing the file path and converted file path to batch file
 pi.UseShellExecute = false;
 pi.RedirectStandardOutput = true;
 p.StartInfo = pi;
 p.Start();
 p.WaitForExit();

Upvotes: 2

Maks Martynov
Maks Martynov

Reputation: 458

I faced a similar problem recently. I solved the issue by adding a separate console application(Consoleapplication.exe) with administrative-rights that runs on my server without shell.

Also, try to upgrade to the newest version of pdf2swf.

Upvotes: 1

Related Questions