ABCPDF font access Windows 2012 - abcpdf

Problem: After migrating a stable system from Win 2008 to Win 2012, ABCPDF is not able to subset fonts correctly. We suspect a Windows permissions issue but do not know what or how to fix.
Background: We have enjoyed the use of ABCPDF for many years on a that has just been migrated from Win 2008 R2 to Win 2012 R2 Datacenter. We use ActiveX DLL's - yes we want to replace them but that is out of scope for now. Current ABCPDF level is ABCPDF 8.1. The dll's run under COM manager and have a specific run-as identity set to avoid the common access issues experienced when running as Network Svc or System accounts.
Our app uses the custom font files meaning we do not rely on the fonts being installed under windows. We use the Windows API call
AddFontResourceEx(font_path, FR_PRIVATE, &O0)
to load fonts into memory and run text measurement routines. This is proven to work because we generate a small bitmap with sample characters from the select font and the glyphs we see are correct. Conclusion is that the fonts are loaded via Windows API successfully. This is important because it informs us that the fonts are where they are expected to be and the run-as user account can access them.
Meanwhile we give the same font to ABCPDF via
oDoc.AddFont(font_path)
but the generated PDF does not include the glyphs of the specific font. Inspecting within Acrobat pro shows Times New Roman is being used.
All works fine on old Win2008 installation. Since moving to Win 2012 R2 we have this issue.
Conclusion: the DLL code can access the font under Win API, but ABCPDF cannot. Suspect some permissions change in Windows 2012. Help?

When we installed ABCPDF it was installed as a user who was not an Administrator. Solution was to uninstall then follow the advise on Websupergoo website which is to install with Run-As Administrator.

Related

Why am I getting a compile error in a new installation?

Brand new Windows 10 Pro system running 1809. Just installed Access via Office 365 (version 1904). We have a database that was originally created in 1998 and has been updated and working on other Windows 10 systems without a problem. However, when we open it on this new system, we are getting the following error right away:
Compile error. in query expression 'IIf(Hour(Time())<12,"Good Morning",IIf(Hour(Time())>11 And Hour(Time())<18,"Good Afternoon","Good Evening")'
Removing this query does nothing but bring up additional compile errors.
All of the other computers were running Office Pro 2007 at some point - probably when the database was converted from an .MDB to an .accdb file. They are now running the latest version of Access without issue. They all also have an Inactive Application Add-in called "Microsoft Office 2007 Access Database Engine Conflict Resolver" installed and set to Load on Demand. I don't know if this has anything to do with it.
I did install Office 2007 to this computer (Access module only) and that same add-on then appeared in the newer Access. But I have since uninstalled Office 2007 after the issue remained unresolved. (That add-on is now gone.)
My (probably ignorant) guess is that there is old code that isn't being processed correctly and the current batch of computers are handling it via something that was installed during the upgrade process? Our database needs are pretty simple and there are very few users.
Any help in getting this new system into the loop would be appreciated.
Argh. I think the issue was that I installed the 64-bit version of Office 365. All works now under 32-bit. Sorry and thanks.

Manifest and supportedOS

I just recently found out about the need for a manifest file so that my native C++ Windows app will properly detect the Windows version. Previously my app was running under the "Operating System Context" of "Windows Vista", but thanks to the manifest file it now runs under the appropriate context for the OS it's running on.
This has sent me down a rabbit hole to learn more about what "Operating System Context" means, and why I should care about it. I've been searching for specific information on what happens under the hood and the best page I've found is:
https://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx
This page details what the Windows Vista (default) application behavior is, and what behavior you can get if you add Windows 7 support via the manifest file.
Here's my problem; I can't find any information like this for Windows 8, 2012, 10, or 2016. I read through the Windows Compatibility Cookbook, but it doesn't seem to contain the type of information available in the above link.
What terms should I be searching for? Is there an up-to-date MSDN page I can bookmark that keeps track of the "Operating System Context" differences?
Thanks!
Partial answer -
Microsoft's page on Application Manifests for Windows 8 and Server 2012 has a section on the SupportedOS element, which refers readers to the download page for the Windows 8 and Windows Server 2012 Compatibility Cookbook. This Cookbook also covers Windows 8.1 and Windows Server 2012 R2. Within this Cookbook, the heading "App (executable) manifest" discusses the the Windows features included in Windows 8 and 8.1 (as well as Windows Server 2012 & 2012 R2) which are impacted by the presence or absence of the corresponding supportedOS element. Search this doc for supportedOS, as it is mentioned in other sections as well.
As for Windows 10 (and implicitly Windows Server 2016), the latest Windows Compatibility Cookbook can be read online or downloaded from this web page. Unfortunately, this latest Cookbook does not go into the details of the specific Windows features that are new or impacted by the supportedOS element for Windows 10. But many of the various behavior changes or compatibility issues with Windows 10 are discussed here.

Visual Studio Express 2013 for Desktop troubleshooting

Visual Studio 2013 for Desktop is displaying incorrectly. When I open the program, it displays correctly but upon moving my cursor over links or images inside of the interface, they either expand to fill the whole window or the line itself blurs.
I'm running Windows 8.1. I've run it in compatibility mode for XP, Vista, and 7. I've run as administrator. I've reinstalled and repaired. This error is easily reproducible and has occurred over the course of 3 days.
Any help would be appreciated.
Can only guess that your video card vendor happens to maintain a bad driver (or Windows Update pushed a bad version to your machine).
http://support.microsoft.com/kb/2894215
The workaround is to disable hardware graphics acceleration and test again.

Windows XP x86 checked build?

It seems that it is impossible to find an image of Windows XP Professional x86 checked build. But I still need to support the software and do my work for that system. :(
Yes, I know that I can install only the checked kernel on the free build, but I still want to have a checked system, not a mix of the two.
Solutions, anyone?
UPDATE: It appears it is not clear from the question itself that what I am looking for is the installation image itself (an ISO image), so I can have the full checked build of the OS installed. NOT the service packs. NOT x64 image.
UPDATE 2: Why calling MS won't help: see http://msdn.microsoft.com/en-us/subscriptions/ff723773.aspx after "Products Unavailable due to Java-related Settlement".
UPDATE 3: See http://social.msdn.microsoft.com/Forums/en/wdk/thread/5fa40892-8207-425a-8866-0fcaebb0c343 -- someone suggests that "The only install disk of a checked XP was the release, i.e. no service packs. MSDN and Technet distributions had the disk as one of the set." Does anybody here have those disks? Seems that ours were lost in the sands of time.
UPDATE 4: Narrowed it down to a MSDN CD named "Windows® XP Professional Checked/Debug Build (English)", disc 1013, volume label X08-48914, dated October 2001. Anyone has that one?..
I bet that if you support your software to work in Windows Server 2003 then your software will also work in Windows XP, even though Microsoft's debugging symbols differ. You can install the checked build of Windows Server 2003 RTM, add the optional component for desktop experience, and it will be approximately the same as Windows XP with SP1 with some increased security. Checked build service packs are available for Windows Server 2003. So you can approximate every service pack version of Windows XP except for Windows XP RTM.
Checked versions are only available in English. You can install an MUI pack but the result is not identical to an actual Russian version of Windows. You'll have to test your software again in the actual version of Windows that your customers use, and that will not be a checked version.
These files are downloadable from MSDN:
en_windows_server_2003_enterprise_chk.iso
en_windows_server_2003_enterprise_x64_chk.iso
(The first paragraph was edited to mention that the Windows Server 2003 RTM download is also a checked build. Of course the download would be useless otherwise.)

Has anyone had success with Visual Studio 6 on Windows 7?

VS6 popped off a series of errors before bombing out completely during install on Windows 7. I specifically need to get VB6 functioning on Windows 7. Anyone having any luck?
Folks on the VB6 newsgroup report they have managed to get it working on Windows 7.
There's this step-by-step guide on how to install the IDE on Windows 7 (including 64 bit).
If that doesn't work (scrapes barrel) try this old tip about persuading the install not to install the Java VM? Link is now broken so here is the tip:
Before trying to install VB6. Create a new file, name it msjava.dll and place it in your windows directory. The file can be zero length. You can then happily install without the prompt to install an old version of Microsoft's flavour of Java. Once you have installed VB6, delete the msjava.dll otherwise windows update will prompt you to update it.
Or (scrapes hole in barrel) these tips from an article about getting the IDE working on Vista?
Footnote: if developing with ADO, be aware of this.
The only way I've found that works is Windows XP mode (i.e. a virtual machine). Works fine there, but otherwise, not at all.
I found ALL the answers in a thread at vbmonster.com. As mentioned above, you CAN install Visual Studio 6 with Service Pack 6 under Windows 7 by following Derek's detailed instructions at fortypoundhead.com.
I had a problem because I needed to install Service Pack 5. I use a third party program that does not work with Service Pack 6. A really smart programmer (GuideX) came up with a great hack to get around the MDAC 2.5 error.
Win 7 64 bit service pack 5 & 6. Turn compatability off and it seems to work.
Recently I had to debug an ancient application written in Visual C++ 6.0 on Windows 8.1. Tried different solutions all of them failed, only this one worked.
This guys made a special installer that allows installing VC++6, VB6, and SP6 on Windows Vista/7/8/8.1/10 without any errors whatsoever.
Hope it would be helpful to someone.
I installed VB6 on Windows 7 Pro without having to use compatibility settings or run as administrator.
Doesn't really help you, but does show that it can work.
Several people in my office have installed Visual Studio 6 (without VC++) on Windows 7, both 32-bit and 64-bit with no problems. The one thing we have in common: we've all turned UAC down to it's lowest setting. Nothing else special required.
I am using vb6 on windows 7 32 bit system for a long time.
you will need to install your vb6 with compatibility of xp2.
Create a 0-byte file in the C:\Windows directory called msjava.dll.
Don't just install via the Autorun executable; instead browse the Visual Studio 6 CD (or folder), right-click Setup.exe and select Run As Administrator.
On any Program Compatibility Assistant warnings, click Run Program.
Step through the setup screens until you're able to choose Custom Setup, then click next.
On the setup options, install the following items and nothing else:
Microsoft Visual Basic 6.0
ActiveX
Data Access
Graphics
Click continue and the process will start, and (hopefully) eventually complete.
Skip the installations of the MSDN CD, BackOffice, VSS and SNA Server, and clear the checkbox for "Register Now". Setup should be complete.
Download the VB6 Service Pack 6 from http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=A8494EDB-2E89-4676-A16A-5C5477CB9713&displaylang=en and install.
Change the compatibility settings for Visual Basic (to get it to run a little more smoothly under Windows 7) by browsing to C:\Program Files\Microsoft Visual Studio\VB98, right-clicking the VB6.exe file, and selecting properties.
On the Compatibility tab, check the following:
Run this program in compatibility mode for Windows XP (Service Pack 3)
Disable Visual Themes
Disable Desktop Composition
Disable display scaling on high DPI settings
When you start up the IDE, you may get a notification saying that the color scheme has been changed to Windows 7 Basic, but it will be changed back to Aero once you exit. Everything should be working fine at this point!
Note: when you first run your new install vb6 run it with admin rights and with xp2 compatibility so that your exe can run on any system.
The word "supported" is used loosely in this thread, potentially leading the unwary reader to the conclusion that Microsoft supports the VB6 IDE (that is, the integrated development environment) on operating systems beyond Windows XP. This fact clearly is stated in the table that appears on the page at this link:
https://blogs.msdn.microsoft.com/nikosan/2012/04/20/support-statement-for-visual-basic-6-0-on-windows-8-updated/
Note that executables developed using VB6 are in fact compatible with Windows OS's from Windows XP through Windows 10--32/64-bit versions:
https://blogs.windows.com/buildingapps/2015/06/22/getting-ready-for-windows-10-sdks-compatibility-bridges/
Anyone using non-standard methods to coax the IDE into working on OS's that Microsoft does not support is exposing themselves/their organizations/their employers to risk and is not suitable for risk-averse organizations.
Having said that, I think the purest solution is to install Windows XP onto a virtual machine and run that VM in a modern host OS, such as Windows 10. That works just fine, and you can install directly from the VB6 Setup disc without making any pre-install/post-install customizations.
I had a Vista x64 box with a working copy of the VB6 IDE (which was supported). I upgraded the OS to Windows 7 x64 and the VB6 IDE still works fine. You could try that. I know, a huge PITA and kludgy but still, it worked for me.
I run Windows 7 Ultimate 32-bit, installed Windows Virtual PC - XP Mode, and that solved my problem isince I can run MSDEV 6.0 in the XP Window.
Not esay to install XP Mode though, the MS site is buggy.
The VB6 programming language is supported on the Windows 10 Technical Preview.
Visual Vasic 6 applications run and the VB6 IDE installs and works too.
I have the VB6 IDE running OK on Win-XP-16, Win-7-32, Win-7-64, Win-8.1-32, Win-8.1-64, win-10-32 and win-10-64 by using the instructions above which basically say, turn off UAC, run the installer AS ADMIN, and then set the VB6.exe file to run in XP-SP3 Compatibility mode.
I have had some issues with it and have had to do a bit more googling to solve these but I don't remember any more what those issues or solutions were.
I've even got the VB3 IDE running on the 32-bit versions of XP, Win-7, Win 8.1 and Win-10 - without even installing them - just copied the C:\VB folder from another computer and copied the *.LIC license files and *.VBX etc files as well.
I have successfully installed vb6 on win 7 32 bit by installing xp first then installing new win 7, (not upgrade), and do not format. then it will install vb6 without a problem
It's depending on your build version of Windows 7.
If your Win7's version is lower or is not updated, it has MANY PROBLEMS with compatibility.
But mine is newer Win7 version and has NO COMPATIBILITY TROUBLE.
I am currently using VB6 , VS6 and they still work fine!
If Properties->Compatibility->Windows XP doesn't help, fix it with UPDATING your Win7.

Resources