Getting Crystal to properly embed TT fonts in a PDF - pdf

Has anyone run into problems getting Crystal XI to embed fonts when displaying reports via the web (served by RAS) and then exporting to PDF? We have a barcode font that we use in a few reports, and it worked fine via the web viewer and when exporting to PDF. When we moved our reporting server from a 2000 box to a 2003 box, the font is no longer exported. It does display properly in the html viewer, but when you export it to PDF to print, the PDF doesn't contain the font. The True Type font is installed on the new server, with scandalously lenient permissions, and the font is installed on all the client machines. Is there no way to start Crystal in some sort of "debug" mode where it will emit info on what it is doing?
(Edited to specify that it is only when exporting to PDF through a page served by RAS that the font is not embedded)

So far I've come across some info that doesn't help me but might help others with similar symptoms:
One issue that can arise is that Crystal won't embed fonts that have DRM on them. See this utility to remove DRM if need be. Microsoft also has a utility to tell you more than you ever wanted to know about your true type fonts, including their "embeddable" status. Sadly, my fonts are already embeddable so this did not help me.
EDIT: FOUND SOLUTION!
The solution here worked for me. The relevant part was this:
On the Windows 2003 PC open Control
Panel, and double click on Regional
and Language Options. Click on the
Language Tab and check on Install
Fonts for complex scripts.... Now
click on the Advanced tab and in
Default user account settings check on
apply all settings....

For the folks stuck with this problem on Windows 2008, I got barcodes working after I did the following:
Install the Crystal Runtime.
Open the fonts folder and select "Font Settings." Make sure the "Hide fonts based on language settings" option is not checked.
Make sure you have a 3 of 9 barcode font installed on the server and its "Font Embeddability" is "Installable". Also make sure the file is not blocked.
Set your "Load User Profile" setting under the App Pool Advanced Settings to True.
After after doing the above and rebooting, my barcodes started to work.

On our Windows Server 2012 R2 - only a reboot required after installing our (DRM-appropriate) font. That is with runtime 13_0_15.
Why you still have to reboot after installing a font is a question for the ages.

Windows Server 2008 supposedly already has fonts for complex scripts enabled according to the article here.
The option "Advanced tab and in Default user account settings check on apply all settings" setting is similar in Server 2008 but you can select Default User And and / or System accounts.
This solution worked on Server 2003 and we are testing it on Server 2008. Note that on Server 2003 we had to perform a complete system restart in order for the changes to take affect.

Related

Bypass Windows 10 'Untrusted Fonts' settings for a font used in our Website

Windows 10 has a feature to block any font outside the %windir%/Fonts directory from loading in a browser.
Our entire website (AEM + Apache webserver) uses a proprietary purchased font which is hence blocked in all PC's. Is there any way to bypass this setting so that the font loads seamlessly in all users.
We need to do something from AEM/Apache websrver/Akamai CDN end because any local changes will not be possible for end users to follow.
I didn't find much help online for this.
The documentation says - "By default, this feature is not turned on." so i would assume you are facing issues on company issued laptops that have this security feature enabled.
Depending on your fonts licensing you could choose to do following -
Use user-agent information to detect if the OS is windows 10
If Windows 10 is detected show an overlay with the link to download and install fonts
To let the font work with this setting, it is to install the font on each machine with the Untrusted font setting turned on and then declare the font with a fallback.
The second option would it be to whitelist the application, in this case, the browser to be whitelisted as explained in the Microsoft website here: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/block-untrusted-fonts-in-enterprise
I had a similar issue, with Icomoon, but the concepts would be the same one: install the font in the system and then declare a fallback font.
This might help you in the process:
http://maurizionapoleoni.com/blog/how-to-display-fontawesome-icomoon-and-font-icons-on-a-windows-10-with-blocked-untrusted-fonts/

Internet Explorer 11 SSRS Reports Integrated with SharePoint - Print Option missing

We have a problem with our SharePoint 2010 site that has SSRS 2008 R2 Integrated reports. When viewing the Actions menu, the Print option is missing.
This may seem like an easy answer... Put it in Compatibility Mode. This would work, HOWEVER, we have a custom .NET app that does NOT work with Compatibility mode turned on. I have no control over it, I just have to work around it...
So, I was able to resolve other IE 11 compatibility issues like InfoPath forms crashing out by adjusting the master page and making the compatibility mode set to 9 in a meta tag. I added the same meta tag to the RSViewerPage.aspx page with no luck.
Is there anyone out there that may have an idea on how to get around this issue? Many of our outside users have upgraded to Windows 8.1 and cannot go back to an earlier version of IE.
The issue is SQL Server R2 without SP2. I had to upgrade to Sql Server 2008 R2 SERVICE PACK 2.
The version of RsClientPrint you get with R2/SP2 is 10.50.4000, while
the version I had was 10.50.1600.
ReportViewer's Print Button Incompatible with IE 10?
I had some issues with our Sharepoint site and IE - even using Compatibility not always helping.
What I found out is something related to User Authentication not picking up.
To work around this - I was clicking on the Site logo to redo the process of authentication and that was always doing the trick.
Is this happening with all the site users?

Error Trying to Save from Excel to Sharepoint Library

I am trying to save an Excel 2010 file to a Sahrepoint 2010 document library but keep getting the error:
"You can't open this location using this program. Please try a different location"
Googling this suggests enabling "Desktop Experience" on the server which I have done. All Excel services are activated.
Has anyone come across this and been able to resolve successfully? I am wondering if this is more security related but the security set-up looks fine.
Any suggestions?
Thanks
I think that there are potentially a couple of things that could solve this problem depending on your set-up.
You are right that a lot of internet advice is to enable desktop experience, but if you are not running on the server or if you have already done this then one of the suggestions below could help.
This is only for dev environments however.
If you are running on the server and trying to use your app as admin then configuring IE ESC to turn off enhanced security for Admins should help
If you are running off server and have the issue and do not want to turn off IE ESC (on the server) for users then you need to enable a mechanism to allow auto-logon, either through integrated security (i.e. you are part of the domain), accessing through an anon web-site port on your SharePoint app (set-up anon web access in SharePoint) or set up and store a WebDav link and use that as the open/save URL.
My (unconfirmed) theory is that there is some auto-login going on in the background that hinders a streamlined office integration. Most of the time, SharePoint will be set up with Kerberos (not NTLM) or be in anon mode so enabling desktop experience if running on the server will be the best first step to try.
Hope this helps.
The problem is that the full path to the file is too long.
I had this problem with a PowerPoint presentation. The full path to the file was over 275 characters. When I shortened the file name to bring the full path under 250 characters, I was able to open the file normally.

IIS7.5 Excel printing not working when run from server

I'm having trouble generating a PDF-file with PDFCreator from Excel macro (using VB.NET 3.5 and Interop).
Through Windows login as the domain user I can run the macro directly from Excel and everything works fine (a pdf file is printed and saved), but when published and run as the same user from server there is no printer found.
In the macro I know this can be solved by setting Application.ActivePrinter ("PDFCreator on Ne00:" in my case), which again works when I run directly from Excel but not from server. So what I wonder is how to make it possible to set ActivePrinter when running on server?
It worked with previous IIS version on the server (6.0). I have tried giving the domain user access permissions (e.g. in DCOMCNFG), the PDFCreator is set up correctly and accessible, don't really know how to approach this.
Using Office Interop from server-like scenarios (IIS/ASP.NET/Windows Service...) is NOT supported by MS - see http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2
Another point is that since windows vista there have been several security-related changed which prevent doing any "desktop-like" things (for example printing...) from a Windows Service...
Alternative to Interop:
To create PDF from Excel file there are several libraries out there which do not use Excel and work fine in server-scenarios - like Flexcel, Aspose.Cells, SpreadsheetGear...
It works even in IIS8 also.
Give Microsoft Excel Application sufficient Permission from DcomConfig (Eg-IIS_IUSRS,Network Services etc)
take care of impersonate user id and password provided In Web.xml. do not make it true if not necessary. it worked for me when i removed this.

System.Data.OracleClient requires Oracle client software version 8.1.7

I have a web site that I developed on Vista using Vb.net9. It makes a connection to Oracle. for the connection I use System.Data.OracleClient. It works fine on my machine, and our test server, but it does not work on the production server. We installed the Oracle Client 11 on the server. The error is System.Data.OracleClient requires Oracle client software version 8.1.7
We've tried, making a console app that opens the connection, connection runs fine, opens, displays a message and all is well there.
Then we make a simple web form, put it in the directory of the program, just a button, opens the connection, try..catch, grabs error, same error.
The console app was running under an Administrator, web site running under iwam. Is it possible that iwam has a different path?
I've run into this error dozens of times:
Cause
Security permissions were not properly set when the Oracle client was installed on Windows with NTFS. The result of this is that content of the ORACLE_HOME directory is not visible to Authenticated Users on the machine; this causes an error while the System.Data.OracleClient is communicating with the Oracle Connectivity software from ASP.NET using Authenticated User privileges.
Solution
To fix the problem you have to give the Authenticated Users group privilege to the Oracle Home directory.
Log on to Windows as a user with Administrator privileges.
Start Windows Explorer and navigate to the ORACLE_HOME folder.
Choose properties on the ORACLE_HOME folder.
Click the Security tab of the Properties window.
Click on Authenticated Users item in the Name list.
Un-check the Read and Execute box in the Permissions list under the Allow column.
Re-check the Read and Execute box under the Allow column.
Click the Advanced button and in the Permission Entries verify that Authenticated Users are listed with permission: Read & Execute, and Apply To: This folder, subfolders and files. If not, edit that line and make sure that Apply To drop-down box is set to This folder, subfolders and files. This should already be set properly but it is important that you verify it.
Click the OK button until you close out all of the security properties windows. The cursor may present the hour glass for a few seconds as it applies the permissions you just changed to all subfolders and files.
Reboot, to assure that the changes have taken effect.
Try your application again.
The author of this post (now deleted post) suggests checking your C:\Windows\System32 folder to make sure that the oci.dll exists there. Copying in the file from the Oracle home directory solved this problem for me.
Update 1: It is possible for different users to have different path. But its not the likely problem here. There is more chance that the user that the iwam user doesn't have permission to the oracle client directory.
Update 0: Its suppose to work. Check for environment variable ( That are needed to find the oracle client and tnsnames.ora ). Also, Maybe you have a 32/64 bit issues. Also, consider using the Oracle Data Provider for .NET ( search for odp.net)
Oracle Client version 11 cannot connect to 8i databases. You will need a client in version 10 at most.
When we first moved over to Vista with Oracle 10g, we experienced this issue when we installed the Oracle client on our Vista boxes, even when we were running with admin privileges during install.
Oracle brought out a new version of the 10g client (10.2.0.3) that was Vista compatible.
I do believe that this was after 11g was released, so it is possible that there is a 'Vista compatible' version for 11g also.
Why not use this: dotConnect for Oracle (formerly known as OraDirect .NET)?
It can be configured to not require an Oracle Client at all.
We have been using this in both Windows Services and ASP.NET Web Services and it works like a charm.
For me, the issue was some plugin in my Visual Studio started forcing my application into x64 64bit mode, so the Oracle driver wasn't being found as I had Oracle 32bit installed.
So if you are having this issue, try running Visual Studio in safemode (devenv /safemode).
I could find that it was looking in SYSWOW64 for the ic.dll file by using the ProcMon app by SysInternals/Microsoft.
Update: For me it was the Telerik JustTrace product that was causing the issue, it was probably hooking in and affecting the runtime version somehow to do tracing.
Update2: It's not just JustTrace causing an issue, JustMock is causing the same processor mode issue. JustMock is easier to fix though: Click JustMock-> Disable Profiler and then my web app's oracle driver runs in the correct CPU mode. This might be fixed by Telerik in the future.