1. How to call PDF to Vector
Command Line (pdf2vec.exe) from C#, ASP, PHP, etc. web program
languages?
A:
Sample code #1 (C# example),
Make use of the PROCESS class available in SYSTEM.DIOGNOSTICS
namaspace, use the following piece of code to execute the pdf2vec.exe
file,
~~~~~~~~~~~~~~~~~
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Diagnostics;
namespace
ConsoleApplication1
{
class
Program
{
static
void
Main(string[]
args)
{
Process
proc =
new
Process();
proc.StartInfo.FileName
= @"C:\\pdf2vec.exe";
string
strArguments =
"";
strArguments +=
"-swfburst";
strArguments +=
" D:\\temp\\sample.pdf
D:\\temp\\out.swf";
Console.WriteLine(strArguments);
proc.StartInfo.Arguments
= @strArguments;
proc.Start();
proc.WaitForExit();
}
}
}
~~~~~~~~~~~~~~~~~
Sample code #2 (C# example),
Please by following steps to call pdf2vec.exe inside a
special user account,
1. Please download and install EXEShell COM Library
(freeware) from following URL first,
/exeshell.html
/download/exeshell.zip
2. Please use following C# code to run the conversion inside a
special user account,
~~~~~~~~~~~~~~~~~
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
ConsoleApplication1
{
class
Program
{
static
void
Main(string[]
args)
{
System.Type
otype =
System.Type.GetTypeFromProgID("exeshell.shell");
Object
o =
System.Activator.CreateInstance(otype);
otype.InvokeMember("RunCommandLine",
System.Reflection.BindingFlags.InvokeMethod,
null,
o,
new
object[] {
"UserName",
"Password",
@"C:\pdf2vec.exe ""C:\test.pdf""
""C:\out.swf""" });
otype
= null;
}
}
}
~~~~~~~~~~~~~~~~~
Remark:
You may encounter Error 1314 in some Windows systems when you switch
between user accounts, this is caused by permission setting, please
by following steps to solve this 1314 Error,
ERROR 1314:
~~~~~~~~~~~~~
1314 A required privilege is not held by the client.
ERROR_PRIVILEGE_NOT_HELD
~~~~~~~~~~~~~
To resolve this issue:
1. Click Start, click Run, type "secpol.msc", and then press
ENTER.
2. Double-click "Local Policies".
3. Double-click "User Rights Assignment".
4. Double-click "Replace a process level token".
5. Click "Add", and then double-click the "Everyone"
group
6. Click "OK".
7. You may have to logout or even reboot to have this change
take effect.
Please refer to following two screenshots to understand above steps,
/images/err1314-1.png
/images/err1314-2.png
Please look at following page for the details about ERROR 1314,
/exeshell.html
Sample code #3 (ASP example),
Please by following steps to call pdf2vec.exe inside a
special user account,
1. Please download and install EXEShell COM Library
(freeware) from following URL first,
/exeshell.html
/download/exeshell.zip
2. Please use following ASP code to run the conversion inside a
special user account,
~~~~~~~~~~~~~~~~~
<%
Set comEXEShell = Server.CreateObject("exeshell.shell")
RootPath = Server.MapPath(".") & "\"
EXEFile = RootPath & "pdf2vec\pdf2vec.exe"
PDFFile = RootPath & "test.pdf"
SWFFile = RootPath & "out.swf"
strCommandLine = EXEFile & " " &
PDFFile & " " & SWFFile
response.write strCommandLine & "<br>"
comEXEShell.RunCommandLine "UserName",
"Password", strCommandLine
Set comEXEShell = Nothing
%>
~~~~~~~~~~~~~~~~~
Remark:
You may encounter Error 1314 in some Windows systems when you switch
between user accounts, this is caused by permission setting, please
refer to the steps in #2 to solve the 1314 Error.
Sample code #4 (VB.NET example),
System.Diagnostics.Process.Start("C:\pdf2vec.exe C:\test.pdf
C:\out.swf")
Sample code #5 (C# example),
Please by following steps to call pdf2vec.exe inside a
special user account,
1. Please download and install EXEShell COM Library
(freeware) from following URL first,
/exeshell.html
/download/exeshell.zip
2. Please use following C# code to run the conversion inside a
special user account,
~~~~~~~~~~~~~~~~~
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
EXESHELLLib;
namespace
ConsoleApplication1
{
class
Program
{
static
void
Main(string[]
args)
{
EXESHELLLib.shell
EXEShell
= new
EXESHELLLib.shellClass();
EXEShell.RunCommandLine("UserName",
"Password",
@"C:\pdf2vec.exe ""C:\test.pdf""
""C:\out.swf""");
EXEShell =
null;
}
}
}
~~~~~~~~~~~~~~~~~
Remark:
You may encounter Error 1314 in some Windows systems when you switch
between user accounts, this is caused by permission setting, please
refer to the steps in #2 to solve the 1314 Error.
Sample code #6 (PHP example),
<?php
$exeshell =new COM("exeshell.shell") or die("Can't start
exeshell");
$exeshell->RunCommandLine("UserName",
"Password",
' "C:\pdf2vec.exe" "C:\test.pdf"
"C:\out.swf" ');
$exeshell = null;
?> |