ImageResizer : Classic Asp : Trying to thumbnail PDF : Ghostscript not found - pdf

I am trying to use ImageResizer (http://imageresizing.net/) installed as COM object to thumbnail a PDF file.
I have got imageresizer successfully working with a JPG file, and moved onto using the PDF render plug in.
Classic ASP code
Set c = Server.CreateObject("ImageResizer.Configuration.Config")
set p = Server.CreateObject("ImageResizer.Plugins.PdfRenderer.PdfRendererPlugin")
p.Install(c)
c.BuildImage "d:\temp\wibble.pdf", "d:\temp\tractor-rotated.jpg", "format=jpg&rotate=45"
Error Message
ImageResizer.Plugins.PdfRenderer error '80131509'
Ghostscript native library for this platform not found: gsdll32.dll
/resize.asp, line 11
(line 11 is p.Install(c))
Now I have downloaded and installed Ghostscript.
I have put the gsdll32.dll and gsdll64.dll in the /bin directory
But it will not work.
What am I doing wrong?
UPDATE BASED ON SUPPLIED COMMENTS.
I have imageresizer installed and working successfully using Classic ASP; I have resized and rotated a plain old .jpg file fine; the issues I am having are with the PDF Rendering plug in... that too seems to be working it is just it is looking for Ghostscript which does not seem to be installed..
Re: Ghostscript. I have run the Ghostscript install program. It seems Ghostscript is actually installed but that the PDF render plug in cant find it.
I copied it to the /bin folder because that is part of the install instructions and I wondered if that is where it might be looking (trying to eliminate variables)
I have created a standalone project to test this and have run the Classic ASP apppool in both 64 and 32 bit modes to again eliminate variables.
But I am still stuck with the error as defined above.

From the update I eliminated most possibilities; I also ran Ghostscript from the supplied documentation so I knew that ImageResizer and Ghostscript were both installed and working but not talking finding each other ....
So the fix is ... add the Ghostscript bin directory(s) to your PATH environment variable, that way ImageResize can find it and after a reboot it all worked. In my case I added
;C:\Program Files\gs\gs9.10\bin;C:\Program Files (x86)\gs\gs9.10\bin to PATH
I have not found this documented anywhere else; so I hope it helps someone else

You can't just drop your dll into the bin folder the way you can in asp.net. With classic asp third party components you need to register the component (which the installation process should have done for you anyway), then you need to give your IUSR account read/execute permission on the registered dll. I haven't used Ghostscript but at a guess look in Program Files/Ghostscript/ or Program Files(x86)/Ghostscript. Another thing to watch out for in Classic is that if you're using a 32 bit component you need to enable 32 bit applications in your app pool

Related

In VStudio 2019, VB, .NET-5: for a ClickOnce installed app, how do I locate the application's data directory at runtime?

My VStudio is 2019 Community, the application is an old VB Windows/Forms app being brought forward from .Net-3.5-ish to .Net-5.
Under .Net-4.8 or earlier, using the namespace System.Deployment.Application, one could access ApplicationDeployment.DataDirectory to locate that artificially-generated directory in \Users\Username\AppData\Local\Apps\2.0\... that a 1-click installation would create and populate with data files from the Project Build/Publish.
Under .Net-5, I believe that particular set of functions has been taken out - yet the ClickOnce installer still places Data files there. How do I programmatically locate that directory? The Application Path can be located from System.AppContext.BaseDirectory, but that doesn't help in locating the data.
This app, an old bit of VB code, has a large number of application data files that need to be installed along with the code. As there are more than 40 of them, we've kept them in their own \Data directory, which is included in the Project, is under Git control to keep their versions aligned with their code...
In an uninstalled app, we could keep this \Data directory adjacent to the executable, and find it easily at runtime: but with a ClickOnce installed app, that falls apart. In the Publish configuration, all the data files are identified, with Group=Required, Publish Status=DataFile.
Can I either:
Easily configure the 1-click installer to place our \Data directory and its contents into one of the standard \Local\Appname or \Roaming\Appname directories that seem to also get created, but left empty? Those can easily be located at runtime.
Easily construct at runtime the path to that obscure data directory that 1-click normally creates and uses for data?
Cheers, and Thanks! Bob

Processing 3 IDE is half cyrillic

Recently I started to find interest in Processing and decided to download the offical Processing 3 IDE from https://processing.org/download/?processing. But half of the IDE is in cyrillic symbols.
Screenshot of the IDE
I already tried to change the configuration language etc. Also I downloaded the IDE to my workplace notebook and on the notebook the IDE was complete in normal english.
Now I dont know how to fix this problem, because there are no informations about a problem like this with the Processing 3 IDE.
A few things to try - you may have already.
I know you said you tried changing the config language, but I'm not sure if you changed the "language.txt" file in the directory "C:\Users\your_username\AppData\Roaming\Processing". Ensure it only contains one line - "en".
Fresh install of Processing (delete the folder you extracted to and the Processing folder in the directory mentioned above, and the sketchbook folder, usually in your documents).
UPDATE:
This is a solution which has worked for others experiencing this exact issue:
Download Processing 3.1.1 - https://github.com/processing/processing/releases/tag/processing-0250-3.1.1
Make sure Processing is not already running
Rename the java folder in the processing-3.2.3 directory to something else, eg. java_broken
Copy the java folder from 3.1.1 to the 3.2.3 directory
Try running the 3.2.3 version of processing.exe

What is the difference between 7zip's 7z.sfx and 7zsd.sfx?

I can't figure out what the difference is between the 7z.sfx file available with 7zip and the downloadable 7zsd.sfx from the developer's site, which is not bundled with 7zip. The 7z.sfx appears not to honor my request to include the config.txt file I created for it, but the 7zsd.sfx inclusion method works perfectly.
7zip comes with 7z.sfx bundled. The application history.txt in the program files directory shows that 7zsd.sfx used to be bundled with 7zip back in 2005. 7z.sfx is referred to as "uncompressed SFX" in the history.txt file as well.
This is the config used:
;!#Install#!UTF-8!
InstallPath="C:\\ProgramData\\IT"
GUIMode="2"
;!#InstallEnd#!
This is the syntax I'm using and the responding behavior:
C:\Users\<me>\Desktop\Updater\Recorder>copy /b 7z.sfx + config.txt + "RecorderVer0.0.0.4".7z "RecorderVer0.0.0.4".exe
7z.sfx
config.txt
RecorderVer0.0.0.4.7z
1 file(s) copied.
The same response occurs with the use of 7zsd.sfx indicating that indeed the config file included is being utilized. However, when executing the 7z.sfx created RecorderVer0.0.0.4".exe the prompt for where to install the contents of the 7z archive is prompted for. Using the 7zsd.sfx created RecorderVer0.0.0.4.exe version directs files to the config set location without any prompting as desired.
To my knowledge 7z.sfx is not downloadable via the developer's site, but I may be wrong. His official page is no longer available, but the information provided from the Internet Archive should be adequate.
I had this previously posted as a comment to my own question.
I found the answer to my question in 7-Zip documentation of all places! :) Looks like there are a total of 4 sfx modules and these are the differences:
SFX_Module : Description
7z.sfx : Windows version.
7zCon.sfx : Console version.
7zS.sfx : Windows version for installers.
7zSD.sfx : Windows version for installers (uses MSVCRT.dll).
Source: http://sevenzip.sourceforge.jp/chm/cmdline/switches/sfx.htm
Acquiring the 7zS.sfx and/or 7zSD.sfx stuffs is easy:
The installers are on the official download page. Just look for keyword 7-Zip Extra. Version 9.20 for example is https://www.7-zip.org/a/7z920_extra.7z
Just in case anybody stumbles across this post looking for the 7zS.sfx and 7zSD.sfx, you can find the 7z_extra files for the (currently) latest version at http://sourceforge.net/projects/sevenzip/files/7-Zip/9.22/7z922_extra.7z/download.
I was also looking for the other sfx modules and managed to find them in the related LZMA SDK archive on the actual 7-zip website:
https://www.7-zip.org/sdk.html
Download the latest version of the LZMA SDK and look in the bin folder.

Windows 8 metro application access arbitrary file path

In metro, the codes like following will throw exception:
String fileName = #"C:\Test\dd\ccc.jpg";
StorageFile file = await StorageFile.GetFileFromPathAsync(fileName);
However even if I check everything in capabilities, also File Picker was added and all file types allowed. I still can't access this file, the same exception will be thrown.
Does someone know how to read file in arbitrary file path? Is that possible in metro style application.
Not possible. You can get to the Libraries - pictures, documents, videos - and if the user puts that folder into one of those libraries (using Windows Explorer on the desktop side) you're all set. You can even write a desktop exe that will put the folder into the library, but you can't launch that exe yourself or be sure that the user hasn't changed the libraries by hand.
Look up SHCreateItemInKnownFolder for a starting point to the shell APIs for library work. I haven't tried calling those APIs from the Metro side; you can see if they help but my bet is they will not be available. If you don't like the COM interop to the shell APIs you could look at the source code to the Windows API Code Pack - I wouldn't want to bundle all of it with a Metro app, but you could copy parts of it to your application.

Build and Debug application outside the default package

If I try to build an application with the application class outside the default package, so the application file path is /app/AppClass.mxml instead of /AppClass.mxml (as would normally be the case), Flash builder cannot launch the application for debugging because it is looking for the SWF in debug/app/AppClass.swf and the SWF is being output to debug/AppClass.swf instead. Changing the output folder to debug/app makes it put the swf in debug/app, but then it puts the application configuration file "AppClass-app.xml" in /debug/app/app and then that can't be found.
Is there a way to change only the SWF output folder, or the location of the xml configuration file in the run-configuration?
You may use symbolic link to created swf file - http://en.wikipedia.org/wiki/Symbolic_link
for example for Windows :
cd project/path/bin-debug/package/path/
MKLINK ClassName.swf project/path/bin-debug/ClassName.swf
and it's work
or you can use symbolic link for folder:
cd project/path/bin-debug/package/
MKLINK path project/path/bin-debug/ /D
I think I remember this worked for me. But it was long time ago. And, yes, it is a known problem, I also recall Adobe people mentioning it as a limitation of FB.
In my Ant script, you'll need to do the adjustments to reflect your actual file names and directory structure. Also note that it will make it more cumbersome to debug it from FB. You'll need to use the debugging target in Ant, and then connect the debugger to the running application (so that some info, especially on the startup) will be lost. The only way you would be able to debug it, though I've never tried it, is with the commandline tools (I'm not sure of adl syntax for breakpoints / printing / stack frames, so idk how to do it.
Also, for the released application you will probably want to change the signing mechanism.