|
Modifying controls in WPF requires you to replace the XAML template, doesn't it?
Maybe it's just that all the material on WPF focuses on the 'cool stuff' and not making normal apps. Even Microsoft's introductory topic[^] is 'shiny' and web-like in the interfaces it shows, though.
|
|
|
|
|
I had the feeling that BobJanova's answer was not very related, hence the 'investigating....'
I didn't even notice we have a special WPF section. Guess I have been posting in the wrong section.
Thanks again for all the input!
|
|
|
|
|
Hi Team,
Is it possible to remove WATERMARKS from existing PDF.? using C#.?
thanks
Satish
|
|
|
|
|
Yes, but only by accessing the raw data of the file and re-writing it to a new one. However, something tells me this may not be legal so I will not suggest a solution.
|
|
|
|
|
|
Hi Hari,
Thanks for the quick reply.
I dont have the ORIGINAL source... i.e Option A [Best] - approach.
I have tried using ASPOSE.PDf,PDFTRON etc. which supports to delete the water marks if they added using those Components.
But My requirement is to remove the WaterMARK(added by Thrid party tool..) from PDF.?
thanks
Satish
|
|
|
|
|
A third party tool is putting the watermarks in??
This is usually because you're using an evaluation version of the tool. A fully-paid and licensed version of the tool probably won't do this.
I doubt anyone is going to help you with this unless you can convince people that what you're doing is not stealing someones hard work when they created that PFD tool.
|
|
|
|
|
|
What you need to do is
- parse the PDF drawing stream
- determine what part of it is creating the watermark
- remove it
- rewrite the PDF drawing stream
- fix up the PDF xref table
Any decent watermark will make part 2 hard, probably mixing the drawing in with some state setup so if you just remove it wholesale it messes up the drawing on the rest of the page. If the PDF is encrypted then getting to the drawing objects might itself be hard (not sure how PDF encryption works though – if readers can read them then they can't be inaccessible).
Unless you can explain why you want to do this (and the result is morally non-objectionable) I won't help any further than that.
Ed: the most effective way is to buy a licence for the software you're using to create the PDFs
|
|
|
|
|
I have a file explorer feature for a windows application.
I need to show the computer drives that are only permitted to user. By using driveinfo we get all logicaldrives,but how to check whether which drive is permitted for user ?
When i run this application in Windows server 2008 i should be able to view only the permitted drives in fileexplorer.
Using System.Security.Principal.WindowsIdentity.GetCurrent() i can get the current loggedin user.
|
|
|
|
|
Considering all drives are always visible to every user by default, your request doesn't make much sense.
If policies are preventing a user from seeing a drive, the code that enumerates drives won't show the letters that the user cannot see anyway, without you having to check permissions.
|
|
|
|
|
Hi guys,
I'm trying to develop a PDF417 Barcode generator software. The problem is, the software is very hard to develop. I've surveyed and found some SDK which will help on generating barcode, but then those SDKs were demo or trial editions. It will expire in some time.
Can anyone help me let know where I can find free SDK for PDF417 Barcode generator.
It must be able to generate the output as an image file.
I've also tried for third party free barcode generating software, but then its unable to generate the barcode with lots of data in it, even if it do, the barcode generated was very big and couldn't fit on the product itself..
thanks.
Regards,
Machan
|
|
|
|
|
Lots of possibilities here[^], to either learn how to generate your own, or buy a ready made package. If you don't find a free one then it looks like you will have to build your own.
|
|
|
|
|
|
I would like to know the best way of handling exception and logging ..
Please advise
thanks in advance..
|
|
|
|
|
arun_pk wrote: handling exception
Try.....Catch blocks
arun_pk wrote: logging
Write your own logging class to write out to a text file or integrate with the Windows Event Log using System.Diagnostics.EventLog
|
|
|
|
|
arun_pk wrote: the best way of handling exception
Depends on business requirements and application.
However there is unlikely to be a single answer to that even within a single application.
arun_pk wrote: know the best way of ... logging
Depends on business requirements an application. And can also depend on your definition of "logging" as well.
|
|
|
|
|
Hi all,
I have two DataGridView s on my form with similar data in each. I'd like to view the same section of both DataGridView s at the same time. In other words, if the scroll bars in one DataGridView is scrolled, I want to set the scroll bars for the other one accordingly.
I found this article which explains how to set scroll bars (using Interop) but I'm either doing something wrong or it's just not working for DataGridView s:
How to change scrollbars position in a multiline textbox[^]
Based on the referenced article, this is block of code I currently have in the Scroll() event handler for but it does nothing:
int orientation = 0;
switch (e.ScrollOrientation)
{
case ScrollOrientation.HorizontalScroll: orientation = 0; break;
case ScrollOrientation.VerticalScroll: orientation = 1; break;
}
SetScrollPos(dataGridView2.Handle, orientation, e.NewValue, true);
SendMessage(dataGridView2.Handle, EM_LINESCROLL, 0, e.NewValue);
Could anyone help me out here please?
|
|
|
|
|
Hi,
I haven't done this, however:
1.
EM_LINESCROLL seems appropriate for a line-oriented Control, not for a Row/Column/Cell-oriented one. Not sure what would fit better.
2.
I would try first without native code. I suggest you look into the Scroll event and the FirstDisplayedCell , FirstDisplayedScrollingRowIndex , FirstDisplayedScrollingColumnIndex properties. You could get the row/column indexes from the one DGV and use those in scrolling the other DGV.
|
|
|
|
|
Thanks, but no, it doesn't quite solve my problem.
1. Yes, I also wondered about EM_LINESCROLL and I also wasn't sure what else to use or even how to go about finding out.
2. I know of the FirstDisplayedCell, FirstDisplayedScrollingRowIndex and FirstDisplayedScrollingColumnIndex properties but they only scroll the DataGridView to integral positions that coincide with the start of the referenced cell, row or column.
Thanks though.
|
|
|
|
|
Have you tried: inheriting from DataGridView (gives you access to VerticalScrollBar), and putting some sort of synchronisation on your class?
class MyGrid : DataGridView {
public static void Link(IEnumerable<MyGrid> grids){
foreach(MyGrid grid in grids)
grid.VerticalScrollBar.Scroll += (s,e) => HandleScroll(grids, e.NewValue);
}
static void HandleScroll(IEnumerable<MyGrid> grids, int value){
foreach(MyGrid grid in grids) grid.VerticalScrollBar.Value = value;
}
}
And call it like:
var grids = List<MyGrid>();
grids.Add(myFirstGrid);
grids.Add(mySecondGrid);
MyGrid.Link(grids);
... in your form's initialisation process.
(Note: I haven't tried this, just going on the documentation.)
Ed: I tried, and you do have to have the lists as type MyGrid, not DataGridView. So you will have to make the controls on your form MyGrids, too. Also, you might want to handle DataGridView.Scroll as well as the scrollbar's Scroll; I'm not sure when each one gets fired.
|
|
|
|
|
What a beautiful solution, thanks. It doesn't work 100% though. It only synchronises the scrollbars but not the actual position of the grid inside the gridview. Any idea why that would be? It seems that by setting MyGrid.VerticalScrollBar.Value, it only updates the position of the scrollbar but does nothing to the body of the grid.
|
|
|
|
|
Ah damn, I thought that setting Value would make the grid scroll. I guess it is hooked to the Scroll property and I don't see any way of externally forcing a scrollbar to fire that. You could probably send it a WM_SCROLL but if you need to resort to P/Invoke then you might as well do that directly on the grid – I'm trying to turn up a managed solution.
Another thing you can try using the same protected-uncovering hackery is to call grid.OnScroll (with a ScrollEventArgs preset to the offset you want). But I suspect all that will do is fire the DGV.Scroll event and not actually cause the visible region to change.
You might have to resort to synchronising rows with FirstDisplayedRow, which isn't ideal.
|
|
|
|
|
Yes, I'm pretty sure calling OnScroll will just fire the event but not update the actual gridview client area.
I wouldn't mind resorting to synchronising the two grids based on FirstDisplayedScrollingRowIndex and FirstDisplayedScrollingColumnIndex if I had a way of forcing the grid to only scroll horizontally to integral values.
In fact, for vertical scrolling, this method of syncing the two grids works perfectly. It's the horizontal scrolling that's a problem because the grid of which the scrollbar is moved can be scrolled to a position where it starts on a partial column, yet the linked grid will be scrolled to the start of that column.
Do you know if there is a way I could enforce horizontal scrolling to also be limited to integral positions as is the case with vertical scrolling?
|
|
|
|
|
According to the documentation, DataGridView.HorizontalScrollOffset[^] is read/write. So you should be able to synchronise that without even needing to inherit from the DGV, as it's a public property. Why the vertical equivalent is read-only I don't understand. But that should work for horizontal scrolling (as long as you don't allow the user to mess with the column widths).
|
|
|
|