We recently updated our GreenTools for G Suite (G4G) application to allow you to download files from your Google Drive with the option to convert them to a new format.
This means you can easily convert files from one format to another (for example, RTF to PDF) using a couple simple steps.
In order to download a file and convert it to another format, the document must first be in a Google Documents format. This can be done right in Google Drive itself.
If you upload the file using G4G there is also a convert option. This means that when the file is uploaded it will automatically be converted to a Google Drive format. An example is as follows using the G4GUPLOAD command:
G4GUPLOAD ID(bvstone@gmail.com) STMF('/tmp/test.rtf') TOFLR(*ROOT) CONVERT(*YES)
The #g4gdrv_upload() ILE function can also be used in a program to do the same thing.
Once the file is uploaded it will automatically be converted to a Google Docs Format.
Next we will use the G4GDLOAD command to download the file and specify the new format that we wish to save the file as:
G4GDLOAD ID(bvstone@gmail.com) DFLR(*ROOT) DFILE(test.rtf) CONVERT(*YES) MIMETYPE('application/pdf') LDIR('/tmp') LFILE(test.rtf.pdf)
The #g4gdrv_downloadFile() ILE function can again be used in a program to do the same thing.
The only thing you will want to make sure is you name the file that is downloaded instead of leaving it as the default. This is because the default local file name defaults to the actual file name, and you wouldn't want your file (test.rtf) when converted to PDF (or another format) to be named test.rtf as well.
Once the command or program completes you will have the newly formatted file in your IFS.
With all of the available options for conversions (see this article for a list) the possibilities are nearly endless on how to use this for file conversion processes!
Here is a quick program we put together that will upload an RTF file, converting it to a Google Docs format, then download the file and converting it to PDF:
H DFTACTGRP(*NO) ACTGRP('G4G') BNDDIR('BVSTOOLS')
****************************************************************
/copy qcopysrc,p.g4gdrv
D id S 256
D errorMsg S 256
D rc S 10i 0
*
/free
#g4gdrv_setValue('id':'bvstone@gmail.com');
#g4gdrv_setValue('upload_file':'/tmp/test.rtf');
#g4gdrv_setValue('convert_file':'*YES');
rc = #g4gdrv_upload(id:errorMsg);
if (rc > 0);
#g4gdrv_setValue('id':'bvstone@gmail.com');
#g4gdrv_setValue('file_id':id);
#g4gdrv_setValue('convert_file':'*YES');
#g4gdrv_setValue('mime_type':'application/pdf');
#g4gdrv_setValue('download_to_directory':'/tmp');
#g4gdrv_setValue('download_to_filename':'test.rtf.pdf');
#g4gdrv_setValue('replace_file':'*YES');
rc = #g4gdrv_downloadFile(errorMsg);
endif;
*INLR = *ON;