How to create and print a document from web app - asp.net-mvc-3

Building an mvc 3 asp app.
One of the features of an app I am building is the ability to add a paragraph of text to a document template, then print it. By templated I mean there will be a couple paragraphs of legal blah blah that must be on each letter, and the letter will be printed on company letterhead, so the spacing needs to be set.
This is an internal app to be used by about 120 people, so it is very possible for multiple people to be accessing the template at the same time. However, the the user will not have the ability to alter the template or save it, just to add a paragraph of text, then print it.
My first thought was to Word 2010, or specifically the new Office Web Apps. However it looks like this would require installing and licensing on the web server, and the boss aint going for that.
Second option I researched is the kendo Editor, I have it displaying on the view, but I can't figure out how to make portions of it read only.
So I am looking for some suggestions of other ways to do this. My fall back will be to do it in reporting services, but this is my last resort, because I want to keep it integrated in my app if possible.

Related

How do you access content in a word document? (like Grammarly does)

I want to create a program that works like an autocomplete box for Microsoft Word. For that, I need some way of reading the contents of the page and getting the positions of words. I know that Microsoft has made a Javascript API for creating plugins in the form of side panes, but that's not what I'm after.
Grammarly manages to read the contents of the document and even underline specific words.
Maybe they have some agreement with Microsoft? Or could they be using some hacky solution? I did try to use win32api with both Python and C++ but didn't succeed.

Custom form in Outlook Task is not syncing

My partner and I created a custom task form to be used in Outlook using the developer mode to do that, and we published it to the Organization Forms Library for anyone to open. We're running into issues that I personally can't seem to find on how to resolve:
Custom forms aren't syncing correctly.
When I complete out the custom form, and I assign it to someone else they might be missing details like the dates I picked from the date picker, and text within the text box are gone too. It's very odd that sometimes some would get all the details that an end-user would input but that's like a 1/8 chance. I feel like there's a disconnect where it just won't behave like any other task. Cache mode or no cache mode doesn't matter it seems. When the person assigns it back with changes made on their end, those changes aren't seen on my side. I just have the same original details that I made when I first made it. We're on Exchange Server 2010.
Looks like a custom form was not published correctly to others in the organization. Try to create a new Outlook item on other machines with your custom forms to make sure they were deployed correctly.
Note, message forms default to separate layouts for composing and reading. Many people find their first message form doesn't look right when they receive an item created with it. That's simply because they forgot to click the Edit Read Page button and customize the Read layout!
You may find the Customizing Outlook Message Forms article helpful.

programmatical GForge upload and download

INTRODUCTION
I am part of a project team which uses an old GForge system (community edition v5.6.1) to host our source code and provide some further services. One builtin service is the upload and download feature. Thus users can easily get the generated application version. In order to provide this downloadable version, we as developers have to use a browser (e.g. IE or FF) to navigate into the appropriate GForge page, then tick some buttons, fill some text boxes and finally hit an "upload" button which opens a file dialog to specify any file to be uploaded into the GForge download area. For a download, the procedure is similar. Additionally, from time to time there comes a separate WEB page to request a session login.
Now, as we as developers are in a "hot phase" and need to provide downloadable versions with high frequency, the procedure described above is much too error-prone concerning essential parts of the release, and too slow. Besides that, there is always a real person necessary in front of the screen to click around.
QUESTION
How can we manage to programmatically upload and download generated software versions into and out of GForge's download area while overcoming the password page on the first hand (of course using a valid user account)?
WHAT WE'VE TRIED SO FAR
Using a Python script. Python provides very helpful modules like "urllib", "urllib2" and "requests", with which any HTTP access (even the ones with session password protection) should be managable. After many hours of trying, the GForge system only returns the password request page. Not any of the interesting files. Even far away from uploading anything.
Using an AutoIt script. AutoIt can automate mouse movements and keyboard presses as well as direct access of visible elements on the screen. It provides a "Window Info" application to identify any window element. But e.g. buttons and text fields within WEB pages (HTML) are not recognized. So we don't know how to correctly identify GForge's password text field in order to move the mouse there, and type in the necessary text. And from there go on imitating the person sitting in front of the screen.
Does anybody have some experience regarding the solution of our problem?
I'd upgrade your system to v6.4.2 (current GForge version). From there you will have access to the SOAP interface which will make all this possible. When GForgeNEXT is released, https://next.gforge.com, the SOAP interface will be replace by a REST-ful API making this integration even easier.
The upgrade to v6.4.2 from 5.6.x will be a bit painful but our team would be happy to help, just create an account on gforge.com and then open a free support ticket here:
https://gforge.com/gf/project/gforge5/tracker/?action=TrackerItemBrowse&tracker_id=10345
Disclaimer: My company manages GForge so the advice given above I'd give to any paying client. For further clarity, files in GForge are stored in the file system. The SOAP interface allows you to reach into the database for any ticket or document grab the appropriate document and even replace it. Programatically, it is the cleanest answer.

Possible to include an image in the meta data in code? VS 2013

I would like to be able to include a screenshot of a control inside my code, this way making control identification easier for new members on my team, is such a thing possible?
Maybe even the ability to just have the image on a network share with the path in a comment, and then have a plugin that when hovering over the link brings up the image?
EDIT (More detail):
I'm creating a test project, the application under test has over 1000 controls, some of them are similar in name and purpose, this can make it difficult at times for developers to reuse the API I am creating because the control name is simply not enough for quick identification of the control in use.
I use the word API very loosely too, none of this stuff will be consumed in web services, and it will always be white box with developers including a project reference and have direct access to the source code.
For every form in my application (The test one), I have a controls.cs file where all the controls for that form in the application under test are listed - This is where I want the hover to screenshot ability in the control definitions.
Another sure factor is that all developers will be using VS2013 (For now the base version), later this could be update 1 or 2.
As the initial author and senior developer on this project, these hover / image references (in the code) will be as useful to me personally as any 3rd party developers, or any later developers to join the initiative.
Thanks again, and I added a bounty!
I believe you can use Whole Tomato's free SourceLinks Visual Studio extension to do what you want - or at least get pretty close to it.
Built-in Functionality:
Out of the box, the extension allows you to specify comment patterns you want users to be able to take an action on. Once the patterns are specified, SourceLinks will highlight any occurrences of those patterns in the text editor. You will be able to double click the highlighted items and perform a pre-configured action (such as opening a link in an internal/external browser, or launching an executable).
You can see an example in the SourceLinks configuration dialog shown below:
(source: wholetomato.com)
So you could use this feature pretty painlessly to define a keyword such as Control Image and then put comments like the following in your code:
// Control Image: my_smart_list.jpg
SourceLinks would allow you double click this text, and you could have that configured to launch the image (using a file:// or http:// url depending on how and where your images are stored) either inside Visual Studio in it's internal browser, or in an external browser.
Custom Tooltips!
Now, if you want to put in some more effort into this and actually write some code, then SourceLinks allows you to create API Extensions to display custom tooltips when the user hovers over the marked text in the editor. The default installation of SourceLinks comes with sample API extensions that you can copy to create your own. See the article linked at the very top of the answer for more details on these samples.
This post in the SourceLinks forum informs us that SourceLinks expects the custom API Extension to return the tooltip value as FlowDocument XAML text. This is awesome news for us, because a FlowDocument can contain many types of elements, including formatted text, hyperlinks, and images.
Imanges in a Flow document can be specified both inline as well as externally.
Hope this helps!
I would use doxygen -- create the images somewhere in the source tree and use doxygen comments. You can embed the \image command in source comments (see docs) and doxygen will generate all the HTML documentation from there. I think doxygen is a great tool for documenting a codebase as you can generate the documentation directly from comments in the source and distribute or host the HTML separately.

Best way to make a newsletter slideshow kiosk for the office?

So, I've been tasked with making a kiosk for the office for showing statistics about our SCRUM progress, build server status, rentability and so forth. It should ideally run a slideshow with bunch of different pages, some of them showing text, some showing graphs and so on.
What is the best approach for this? I first thought of powerpoint, but It should be able to take the images from a webserver so I can automate the graph generation procedure. I would also like to take text from an external source when showing "Who broke the build" or some page like that.
I have no doubt that ready-made systems exist, but I don't really know where to look for them.
Is this easy/hard in powerpoint? Or are there an ubiquous app that everybody but me knows about?
I would recommend creating it as a series of web-pages, which uses Javascript or the meta refresh tag to cycle though the different pages. Simply full-screen the browser on a spare machine, and connect it to a projector/monitor/big TV.
This has lots of benefits:
it's trivial to display images from an external server (an <img> tag)
it will cost nothing to setup (it can run on basically any functioning machine), and runs in a browser
it is quick to do (you do not have to worry about cross-browser compatibility, or different screen resolutions as you know the exact machine you are developing for
it's expandable - while what you describe is probably possible within Powerpoint, but if you do it as a web-page, you can use Javascript (or a JS framework like jQuery), and it's very easy to serve the pages via a web-server, then you can use any server-side scripting language.
Basically, you would have a series of files, say slide001.htm, slide002.htm and slide003.htm. Slide 1 would redirect to slide002 after 30 seconds, slide002 to slide 003, and slide003 would redirect to slide001..
The specific things you mention: graph generation and "Who broke the build" text:
Not sure which CI tool you use, but many of them generate graphs anyway, so that would be required is having one "slide" with something like <img src="http://hudson.abc/job/proj042/buildTimeGraph">
For the who-broke-the-build text, you would be easiest to run the slides as .php files served though a web-server, using XAMMP.
Then you would have a function that scrapes your CI server for whoever broke the last build, and in one of the slides, you would have <?PHP echo(who_broke_build()); ?>
(Obviously if you know some other language/system better, use that!)
The final benefit I can think of is that, if you serve the files through a web-server, you can allow people display it locally, say as their browsers home-page.
Thanks. I found jqS5 which did most of what you mentioned.
It requires 1 document where every h2 becomes a new slide.
I can then use the meta-refresh to reload to next page every 10 seconds. When I reach the end of the slides, I pull data from an aggregated RSS feed from all the different systems in order to pull information.
http://staticfree.info/projects/jqs5/

Resources