I dont think its a SP4 problem. I have the same problem with SP3 and
SP1.
It seems like Axapta cant scale the picture when inserting it into a
pdf file, but keeps the original size... (works fine with 'print 2
screen')
Any suggestions?
Regards
Allan
--- In [email protected], Palle Mølgaard <[EMAIL PROTECTED]>
wrote:
>
> That's a new feature of SP4 :-(
>
>
>
> Change hhe writeBitmap() method of PDFViewer to look like this,
then you're back to working bitmaps :
>
>
>
> public void writeBitmap(OutputBitmapField _field, OuputSection
_section)
>
> {
>
> BinData bin = new BinData();
>
> image img;
>
> container data;
>
> str s;
>
> real x1,x2, y1,y2;
>
> struct br;
>
> int imageObjectNo = 0;
>
> //real PDFPreviewScale = 0.8; // New in SP4 - not needed
when using SP3 version
>
> boolean generateXImage = false;
>
> container c;
>
> str fn;
>
>
>
> br = this.boundingRectTwips(currentPage, _section, _field);
>
>
>
> x1 = br.value('x1'); y1 = br.value('y1');
>
> x2 = br.value('x2'); y2 = br.value('y2');
>
>
>
> if (_field.type() == 10) // resourceId, DB_RESID
>
> {
>
> img = new Image(_field.resourceId());
>
>
>
> if (resourceIdImageMap.exists(_field.resourceId()))
>
> imageObjectNo = resourceIdImageMap.lookup
(_field.resourceId());
>
> else
>
> {
>
> imageObjectNo = this.nextObjectNo();
>
> resourceIdImageMap.insert(_field.resourceId(),
imageObjectNo);
>
> generateXImage = true;
>
> }
>
>
>
> if (debugLevel >= 1)
>
> info ('Image in resource ' + int2str(_field.resourceId
()));
>
> }
>
> else if (_field.type() == 7) // queue
>
> {
>
> c = _field.value();
>
> if (c)
>
> {
>
> img = new Image(c);
>
> imageObjectNo = this.nextObjectNo();
>
> }
>
> generateXIMage = true;
>
>
>
> if (debugLevel >= 1)
>
> {
>
> if (img)
>
> info ('Image in container');
>
> else
>
> info ('No image in container');
>
> }
>
> }
>
> else // string containing filename
>
> {
>
> img = new Image(_field.imageFilename());
>
>
>
> if (stringImageMap.exists(_field.imageFilename()))
>
> imageObjectNo = stringImageMap.lookup
(_field.imageFilename());
>
> else
>
> {
>
> imageObjectNo = this.nextObjectNo();
>
> stringImageMap.insert(_field.imageFilename(),
imageObjectNo);
>
> generateXImage = true;
>
> }
>
>
>
> if (debugLevel >= 1)
>
> info ('File is ' + _field.imageFileName());
>
> }
>
>
>
> if (img)
>
> {
>
> if (generateXImage)
>
> {
>
> // We have not seen this image before, so generate an
XIMage for it
>
> // Save the image as a jpg file.
>
> fn = winApi::getTempFilename(winApi::getTempPath
(), 'AXP');
>
>
>
> // SP4 does not work! - back to SP3 code
>
> //RH#4382, v-yuriv, 24-11-2004
>
> //We should resize the bitmap according to the area
given in PDF page otherwise there will be out of area drawing
>
> //The PDF bitmap drawing has wrong scaling from what
we see in the preview so we should also scale it by PDFPreviewScale
>
> //img.resize(min(abs(x2-x1)/PDFPreviewScale, img.width
()), min(abs(y2-y1)/PDFPreviewScale, img.height()), 4);
>
>
>
> img.saveImage(fn, ImageSaveType::JPG);
>
>
>
> bin.loadFile(fn);
>
> data = ""> >
>
>
> // Get rid of the temporary file.
>
> winApi::deleteFile(fn);
>
>
>
> if (bitmapEncode85)
>
> s = bin.ascii85Encode();
>
> else
>
> s = bindata::dataToString(data);
>
>
>
> // Use the image dimensions if the user didn't specify
resize
>
>
>
> objectOffsetMap.insert(imageObjectNo, buffer.size());
>
> imagesOnPage.add(imageObjectNo);
>
>
>
> buffer.appendText(int2str(imageObjectNo) + ' 0 obj
<<\r');
>
> buffer.appendText
(' /Type/XObject /Subtype/Image /ColorSpace /DeviceRGB\r');
>
> buffer.appendText(' /Name /I' + int2str
(imageObjectNo) + ' /BitsPerComponent 8\r');
>
> if (!bitmapEncode85)
>
> {
>
> buffer.appendText(' /Filter
[/ASCIIHexDecode/DCTDecode] /DecodeParms[null<<>>]\r');
>
> buffer.appendText(strfmt(' /Length %1\r', strlen
(s)+1)); // Allow for end of data marker
>
> }
>
> else
>
> {
>
> buffer.appendText(' /Filter
[/ASCII85Decode/DCTDecode] /DecodeParms[null<<>>]\r');
>
> buffer.appendText(strfmt(' /Length %1\r', strlen
(s)));
>
> }
>
> buffer.appendText(strfmt(' /Width %1 /Height %2\r',
img.width(), img.height()));
>
> buffer.appendText('>>\rstream\r');
>
> buffer.appendText(s);
>
>
>
> if (!bitmapEncode85)
>
> buffer.appendText('>'); // End of Data marker
>
>
>
> buffer.appendText('\rendstream\rendobj\r');
>
> }
>
>
>
> // SYP-Modification R-DEN-DDSP-KITR-04447 - Begin (SP3)
>
> // Have to put imageObjectNo or it will be only on page #1
>
> imagesOnPage.add(imageObjectNo);
>
> // SYP-Modification R-DEN-DDSP-KITR-04447 - End (SP3)
>
>
>
> // Generate the object that draws the image...
>
> s = 'q\r';
>
>
>
> s += this.drawFieldFrame(_field, x1, y1, x2, y2);
>
>
>
> // Provide a scaling factor bringing the image size up to
the size requested by the report
>
> // Also, provide x,y pos)
>
> if (_field.resize())
>
> s += ' ' + this.real2str(x2-x1) + ' 0 0 ' +
this.real2str(y2-y1) + ' ' + this.real2str(x1) + ' ' + this.real2str
(y1) + ' cm\r';
>
> else
>
> {
>
> x1 += this.twips(this.borderWidth(_field.borderWidth
(), _field.lineLeft()));
>
> y1 += this.twips(this.borderWidth(_field.borderWidth
(), _field.lineRight()));
>
> x2 -= this.twips(this.borderWidth(_field.borderWidth
(), _field.lineTop()));
>
> y2 -= this.twips(this.borderWidth(_field.borderWidth
(), _field.lineBottom()));
>
>
>
> if (_field.alignment() == ALIGNMENT::Center)
>
> {
>
> x1 = (x1 + x2 - img.width()) / 2;
>
> y1 = (y1 + y2 - img.height()) / 2;
>
> }
>
> else if (_field.alignment() == ALIGNMENT::Right)
>
> {
>
> x1 = x2 - img.width();
>
> y1 = y2 - img.height();
>
> }
>
> else // left
>
> {
>
> y1 = y2 - img.height();
>
> }
>
> // SP4 does not work! - back to SP3 code
>
> //RH#4382, v-yuriv, 24-11-2004
>
> //The PDF bitmap drawing has wrong scaling from what
we see in the preview so we should also scale it by PDFPreviewScale
>
> //s += ' ' + this.real2str(PDFPreviewScale*img.width
()) + ' 0 0 ' + this.real2str(PDFPreviewScale*img.height()) + ' ' +
this.real2str(x1) + ' ' + this.real2str(y1) + ' cm\r';
>
> s += ' ' + this.real2str(img.width()) + ' 0 0 ' +
this.real2str(img.height()) + ' ' + this.real2str(x1) + ' ' +
this.real2str(y1) + ' cm\r';
>
> }
>
>
>
> s += ' /I' + int2str(imageObjectNo) + ' Do\r';
>
> s += 'Q\r';
>
>
>
> pagePDF.appendText(s);
>
> }
>
> super(_field, _section);
>
> }
>
>
>
> Regards
>
> Palle Mølgaard
>
> Systemate A/S
>
> ________________________________
>
> From: [email protected] [mailto:development-
[EMAIL PROTECTED] On Behalf Of Allan Ørum
> Sent: 27. februar 2006 21:30
> To: [email protected]
> Subject: [development-axapta] Bitmaps in pdf files
>
>
>
> Hi,
> I have a problem with pdf files.
> When I print to screen (eg a confirmation), my bitmaps comes out
fine and
> scaled.
> But when I print to a pdf file, the bitmaps are placed funny, and
are no
> longer scaled.
>
> Anyone with experience in this area?
>
> Regards Allan
>
>
>
>
>
>
> SPONSORED LINKS
>
> Computer part <http://groups.yahoo.com/gads?
t=ms&k=Computer+part&w1=Computer+part&w2=Programming+languages&w3=Mic
rosoft+axapta&w4=Support+exchange&c=4&s=90&.sig=yLpvcLTIDJ5FTkRJGsO11
w>
>
> Programming languages <http://groups.yahoo.com/gads?
t=ms&k=Programming+languages&w1=Computer+part&w2=Programming+language
s&w3=Microsoft+axapta&w4=Support+exchange&c=4&s=90&.sig=cuhEClK4dU4wa
pXFmKisbQ>
>
> Microsoft axapta <http://groups.yahoo.com/gads?
t=ms&k=Microsoft+axapta&w1=Computer+part&w2=Programming+languages&w3=
Microsoft+axapta&w4=Support+exchange&c=4&s=90&.sig=yfeG_U6QaLfPOZZIud
02Fg>
>
> Support exchange <http://groups.yahoo.com/gads?
t=ms&k=Support+exchange&w1=Computer+part&w2=Programming+languages&w3=
Microsoft+axapta&w4=Support+exchange&c=4&s=90&.sig=hy8yRGMzrmxdphyITT
UeqA>
>
>
>
>
>
>
>
> ________________________________
>
> YAHOO! GROUPS LINKS
>
>
>
> * Visit your group "development-axapta
<http://groups.yahoo.com/group/development-axapta> " on the web.
>
> * To unsubscribe from this group, send an email to:
> [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]
subject=Unsubscribe>
>
> * Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service <http://docs.yahoo.com/info/terms/> .
>
>
>
> ________________________________
>
>
>
> [Non-text portions of this message have been removed]
>
SPONSORED LINKS
| Computer part | Programming languages | Microsoft axapta |
| Support exchange |
YAHOO! GROUPS LINKS
- Visit your group "development-axapta" on the web.
- To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
- Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

