Generating Images: Alternate Font By User Agent (OS)?
Jun 7, 2010
I need to generate small images for certain parts of text. Those will have to fit into the text seamlessly. I know I can not make up for every browser font settings available, but how do I have to check for Linux, Mac and Windows users depending on the user agent? I want to use the right font (of the three "Verdana, Arial, Helvetiva") for the right user agent OS.
So:How do I check for the OS? What do I have to compare to in the user agentWhere can I get the other two fonts. Does the Windows-included Verdana look the same as the one used on Linux (or, is it free anyway? I don't know much about fonts)? Where do I get Helvetica? Is it Mac OS licensed?
Any code examples can be in either c# or VB.NET. I can read both.
I am currently using Request.Useragent.Contains("string1") and if string1 matches with my useragent i am writing it on to the page, now I have to check with a collection ( array or list or ..) which contains {"string1","string2","string3"} and Response.write the useragent if the Request.useragent contains any of the strings collection (string 1,2,3). I am unable to detemine this and if i use a list or array, i am getting a "cannot convert from string[] to string" exception when i use it with Request.Useragent.Contains.
If there is a better way of achieving this, let me know. Its important.
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)
HttpContext.Current.Request.Browser.MajorVersion returns 3 and HttpContext.Current.Request.Browser.MinorVersion returns 5. So far so good.
However for this user agent string (seen in the wild by one of my users)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 (CK-Finbu.com) Firefox/3.6 (.NET CLR 3.5.30729)
HttpContext.Current.Request.Browser.MajorVersion returns 1 and HttpContext.Current.Request.Browser.MinorVersion returns 9. It looks like ASP.NET has picked up the numbers from the CVS tag info rather than the browser version. Does this mean that ASP.NET's user agent parsing is broken?
I'm currently running a site of a dedicated server but want to scale up using Microsofts Azure cloud platform in the future but im unsure if a certin part of my code will work on azure.The site consists of a gallery of items with an image for each item.The images are stored in a sqlserver database.
I have created a http handler that caches the images to disk and redirects the request to the image (as shown at the end of the post).The images are saved into a virtual directory called "imagecache" inside my ASP.NET application. (i.e. ~/imagecache/ ).
As the web app will run in many virtual machine instances on the Azure platform the images will need to be shared between the instances right?So my question really is.. What is the best way of achieving what I already have on that is compatible wit azure?Image gen code..
public class getimage : IHttpHandler { private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public void ProcessRequest (HttpContext context) { [code]....
I'm banging my head against a wall here... can't get to the bottom of this issue. I have code that works fine when debugging in visual studio but breaks when deployed to both IIS 6 and IIS 7.5. Basically, it uses Process and ProcessStartInfo to start a program (a command line tool, exe) and redirect the output to the web page. It uses the username and password properties of the ProcessStartInfo class to run the exe tool as a specific user. The tool requires admin privelages so I need to run it as such, but certianly don't want to run the IIS service or the asp.net app pool under an admin context.
No exception occurs when run on IIS, but it does not work, when trying to run on IIS 6 I get this error dialog: "The application failed to initialize properly (0xc0000142). Click on ok to terminate the application." It's obviously a security/config issue, but what specifically is the culprit? For IIS 6, an application pool was created for this, runs under 'network service', as usual, but again the process being started by the system.diagnostics.process class is run under a different account, which is an administrator account. For IIS 7.5, same thing,an app pool was created, so it runs under the 'iis appPoolNameOfPool' context.
I've been using WebBrowser.DrawtoBitmap() in my asp.net page running in separate STA thread to capture web pages as an image. But I found that I'm getting blank images for few sites consistently. I'm aware that the method is not 'officially' supported but it would be nice if someone can provide me any reason or a work around for these blank images issue.
Just upgraded from SSRS 2005 to 2008 (on a test server). I have a report with a list and in this list are about a dozen fields in textboxes whose fonts are all set to Verdana 8pt. When I run the report from the Report Manager, one of the 12 fields is displaying in a serif font (like Times New Roman) at around 12pt. When I preview the report in Visual Studio every field looks fine and when I run the same report in SSRS 2005 every field looks fine. Has to be a SSRS 2008 bug!
I would like to generate sequential IDs in the format ZZZ999 starting from AAA001 but this is not for batch insertion of data. I want to issue the ID to users that signup on the website with the next available ID. Mutiple users can signup and should be issued the next available unique Id. I was thinking of storing the last used Id (just one row that is always updated with last issued id) in a table that I can lookup and use to determine the next id and update it. But given that mutiple users can be signing up at the same time, what is the best way to ensure that each user is issued a unique id while maintaining the issue of sequential ID. Will record locking work? I don't think so, as the last issued id can still be read by mutiple users and that it self will generate the same Id which will not work.
point me to information regarding getting font metrics from a true type font in C#? I need to split some text from an RSS feed for a given box height and width.
I've checked System.Drawing.Font and GetHeight is there but how do I get the width of a character?
I understand each character is rendered as a glyph but not sure which class will get the width of the character?
I found this code online to generate a password [URL] ....
How do I know this won't generate a word that might offend the user? I remember seeing something in another page about skipping curse words. Is that worth looking into? I could remove s-f-h-u-i-c-t-k from possible characters?
I have very similar problem as this: Allowing users to download files - ASP.NET , but in my case I am generating xlsx file with ajax, and on ajax-called aspx page I am using:
[code]....
When this file is generated, control is returned to ajax calling page and from there I wan't to show save file dialog based on this ajax response and allow user to download this generated file. I don't want to save file on disk with ajax called page and then redirect ajax calling page to that file, because of popup blocker in IE. I am using jquery for ajax calls:
I have a Gridview that I am using in a User Control. The grid loads great and my paging buttons that exist outside of the grid itself work properly. When I click my delete button inside the grid, I am getting an invalid postback message. How should I handle this? My control raises one event by the way.
Well I would like to get understanding on sql server security. how to map windows user eg:'srm123' to sql server agent so that user when logins in sql server can also work with sql server agent.bydefault u can not see sql server aqent icon in ssms in userlogin.what is a role of a proxy and credentials how to map them with windows user to workwith jobs and alerts.
I am trying to run a Stored Proc in 2008 using the sql agent. I read some posts on here and other places that say you can and I have tried what they said but isn't running. I can execute the proc form a query window and its working fine so its not my proc.I setup a job and then created a step named the step run stored procType: not sure here but I left it at default T-SQLChanged the database to the database where my sp is located Then in command i put exec dbo.sp_myprocname
I am facing grouping the agent wise in stored procedure, here i showned the table columns,views and stored procedures i used.
User Table columns User_Id,pwd,Created_Dttm,Role,Status Table1 columns[code]....
Problem is when i am group by A.Name i am getting error "Column 'V1.Target' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause."
I have a solution that was originally created using VS 2008. I have quite a few unit tests that all passed when ran in VS 2008.
Yesterday I opened this solution in VS 2010 and converted it using the wizard. The solution built just fine, it runs just fine, BUT now all tests that access the db fail. I get the same error on every test (below).
"The runtime has encountered a fatal error. The address of the error was at 0x5b3b5ad7, on thread 0x19a4. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack."
In test classes that use ClassInitialize() and ClassCleanup() methods, all the tests fail. All tests fail with the same error, "The agent process was stopped while the test was running." Tests in test classes that do not utilize ClassInitialize() and ClassCleanup() (these tests do not hit the database) all pass.
When this was a VS2008 project all 153 tests passed. No changes have been made to these tests, other than converting the project to a VS2010 project.
I've been playing around with one test class. I commented out the ClassInitialize() and ClassCleanup() methods. I rewrote one test method and mocked everything. I tried running just that one test. I still got the "The agent process was stopped while the test was running" error.
Visual Studio 2010, version 10.0.30319.1 RTMRel
Test framework: integrated VS 2010 MS Test
Mocking framework: Not using mocking, I have a db that is destroyed and recreated in MyClassInitialize(), it is populated with known values. Yes, I know I should be using mocking, but this is an older app and it has not been updated with all of the new bells and whistles yet.
DB Framework: NHibernate
Target Framework is 3.5 for all projects in this solution except for the test project. The target framework is 4.0 for the test project. I tried changing it to 3.5, it will not let me.
"Attempted re-targeting of the project has been canceled. You cannot change the specified .NET framework or profile for a test project."