We are currently evaluating solutions for handling PCL (converting PCL into PDF and/or PS), including VeryPDF PCL Converter. Our initial tests show it does a good job converting PCL files, however the only API available (found in samples) is int WINAPI VeryPDFPCLConverter(const char *lpCmd). This command-line style approach does not allow any control over conversion process (cancel, suspend, getting progress), and also requires input and output from/to disk files only.
Is there by any chance more sophisticated API, one allows working in a memory buffer-in- buffer-out manner?
Thanks in advance and best regards,
Thanks for your message, we can develop a custom-build version of PCL Converter SDK to you, this custom-build version will provide more control to you (cancel the conversion and getting progress), it is support "memory buffer-in and buffer-out manner", if this solution will acceptable to you, please feel free to let us know.
Thanks a lot for the fast reply. We will appreciate the solution for the custom build.
Thanks for your message, this custom-build version has following new functions,
1. VeryPCLConverter_CancelConversion(), this function will cancel the conversion.
2. VeryPCLConverter_GetProgress(), you can use this function to get the progress of current conversion,
3. VeryPCLConverterMemory(), you can use this function to convert memory PCL to memory PDF, it doesn't use disk file at all,
We will finish these functions to you within five business days.
Thanks again for the quick answer. In order to go ahead with the purchase process (we are big organization and have to follow procedures) I would like to confirm the following points:
2.1 We would like to have better API definition: for instance we assume that VeryPCLConverter_CancelConversion() and VeryPCLConverter_GetProgress() will be callback functions since otherwise it is unclear how to use them while VeryPCLConverterMemory() is working
2.2 Have a more detailed definition of VeryPCLConverterMemory() - mostly how to supply the input PCL and get resulting PS/DF via memory - who is responsible for memory allocation/deallocation, what is the calling sequence, etc.
During next week I will be out of office and apologize in advance for possible delay with my answers during this period.
Thanks and regards,
I have talked with our engineer just now, we can implement above functions by following code,
BOOL WINAPI VeryPCLConverterMemory(LPBYTE lpPCLData, int nPCLDataLength, LPBYTE *lpRetPDFData, int *lpRetPDFDataLength, const char *lpOptions);
typedef int (__stdcall *VeryPCLConverterProgressCBFunc)(int nID, int nProgress, WPARAM wParam, LPARAM lParam);
void WINAPI VeryPCLConverterSetProgressCBFunc(VeryPCLConverterProgressCBFunc newFunc);
You can call above functions like below,
int __stdcall ProgressCBFunc(int nID, int nProgress, WPARAM wParam /*Reserved*/, LPARAM lParam/*Reserved*/)
printf("nID=%d, nProgress=%d, wParam=%d, lParam=%d\n", nID, nProgress, wParam, lParam);
//Return 1 will continue the conversion, return 0 will cancel the conversion
LPBYTE lpPCLData = ...... //Read PCL data into this buffer
int nPCLDataLength = ...... //Length of PCL Data
LPBYTE lpRetPDFData = NULL; //Receive PDF Data
int nRetPDFDataLength = 0; //the length of received PDF Data
int nID = 1; //Identity of conversion job
BOOL bRet = VeryPCLConverterMemory(nID, lpPCLData, nPCLDataLength, &lpRetPDFData, &lpRetPDFDataLength, "");
If you have any question for above function, please feel free to let us know.