Skip to main content
Participating Frequently
Jan 16, 2007 9:21 AM UTC
Question

Itext Problem

I get the following problem when trying to use the refactored iText 1.4.6.

Class coldfusion.runtime.java.JavaProxy can not access a member of class com.lowagie.textNew.pdf.PdfWriter with modifiers "protected"

Im trying to call the following function.
pdfWriter.setViewerPreferences(PdfWriter.HideToolbar);

Is there anyway around this?
This topic is closed to new replies. Start a new post to keep the conversation going.

15 replies

Inspiring
Apr 5, 2007 3:16 AM UTC
sorry to take so long, been a bit busy.

the "|" char is java syntax for bit ORed. so to cobble together different
permissions that you want to negate you might do something like:

pdfPermissions=bitOr(pdfCopy.ALLOWPRINTING,pdfCopy.ALLOWCOPY);
// don't allow any of the pdfPermissions
pdfCopy.setEncryption(pdfCopy.STRENGTH128BITS,"",passwd,bitNot(pdfPermissions));

if there's more than two permissions you need then maybe:

pdfPermissions=bitOr(pdfPermissions,pdfCopy.ALLOWMODIFYCONTENTS);
pdfPermissions=bitOr(pdfPermissions,pdfCopy.ALLOWASSEMBLY);
.
.
.
etc.


Translate
Known Participant
Apr 3, 2007 2:00 PM UTC
I use Coldfusion 7.0.2 with the itext that came with it.
My code (99% based on yours :-) :

if (i EQ 1) {
pdfDocument.init(reader.getPageSizeWithRotation(1));
pdfCopy.init(pdfDocument, newPDF);
// make sure we turn off printing or modifying or ... BEFORE we open the new PDF
passwd = createuuid() ;
pdfCopy.setEncryption( pdfCopy.STRENGTH128BITS, "", passwd, bitNot(pdfCopy.AllowModifyContents)
);

pdfDocument.open();
} // first file in list?

If I replace "bitNot(pdfCopy.AllowModifyContents)" by "pdfCopy.AllowScreenReaders | pdfCopy.AllowCopy | pdfCopy.AllowPrinting". I have the following error : "Invalid token '|' found on line 310 at column 100."
Translate
Inspiring
Apr 2, 2007 12:08 PM UTC
obouillaud wrote:
> The docs said that it's possible to concatenate multpiles "AllowXXX" using |
> (pipe) but it does not work !

what ver of iText? show your code.
Translate
Known Participant
Apr 2, 2007 10:28 AM UTC
ok it works for me, but just for one parameter a the same tilme.
pdfCopy.setEncryption(pdfCopy.STRENGTH128BITS,"","123456789",bitNot(pdfCopy.AllowModifyContents));

if I repeat this line with different attributes (AllowPrinting...) it's not working

The docs said that it's possible to concatenate multpiles "AllowXXX" using | (pipe) but it does not work !

I want to do the following thing :
no password for reading
a password for editing
without password, you can read & print the PDF, but nothing else (not removing a page, not edit text, ...)

How can I do ?
Translate
Inspiring
Feb 20, 2007 11:20 PM UTC
Has anyone got into a problem generating very large pdf files. Our process kills the jrun once the pdf file generated is larger than 14mb?

Thanks
Translate
iborsbAuthor
Participating Frequently
Feb 1, 2007 2:59 PM UTC
Thanks Paul....
Translate
Inspiring
Jan 26, 2007 11:43 AM UTC
iborsb wrote:
> I get the following error
>
> The selected method setEncryption was not found

post enough of your code to see what's going on.
Translate
iborsbAuthor
Participating Frequently
Jan 26, 2007 12:41 PM UTC
Here is the code.

Its a copy of the concatenate pdf code from a previous post - as this removes all the security I need to add it back on.
Translate
iborsbAuthor
Participating Frequently
Jan 26, 2007 9:20 AM UTC
I get the following error

The selected method setEncryption was not found

I'm using a itext 1.4.6.
Translate
Inspiring
Jan 25, 2007 5:07 PM UTC
iborsb wrote:
> Is that even close? Currently, I get an AllowPrinting is undefined error.


AllowPrinting is a user permission *field* in PdfWriter. if you have initialized
a PdfWriter class then you can do PdfWriterObjectName.ALLOWPRINTING or simply
javacast on it's value, 2052.

newPDF=pdfStamper.setEncryption('','',javaCast("int",2052),0);

if i can offer some advice, grab a copy of bruno's book if you plan on doing
much w/Itext. very good value.
Translate
iborsbAuthor
Participating Frequently
Jan 25, 2007 4:24 PM UTC
Hi Paul

I've come up with the following
newPDF=createObject("java","java.io.FileOutputStream").init(expandPath(finalOutPutFile));
pdfStamper=createObject("java","com.lowagie.textNew.pdf.PdfStamper");
newPDF=pdfStamper.setEncryption('','',AllowPrinting,0);

Is that even close? Currently, I get an AllowPrinting is undefined error.

The notes suggest that the command should accept an int and yet the options inlude allowprinting etc..
Translate