Copy link to clipboard
Copied
Can I crop images in Adobe Frame Maker?
If an image is inside an anchored frame, you can drag the boundaries of the anchored frame to crop parts of the image.
Copy link to clipboard
Copied
Maybe - not sure of how - but best practices are usually for you to do all edits on images outside of FM and then bring in the image at the desired size.
Copy link to clipboard
Copied
If an image is inside an anchored frame, you can drag the boundaries of the anchored frame to crop parts of the image.
Copy link to clipboard
Copied
Alright, thank you!
Copy link to clipboard
Copied
Using the Anchord Frame trick, however, be aware that the rest of the image may still be in the output data (such as PDF, perhaps HTML), just hidden. It could be recovered from the meta-data. So if you are cropping for information security reasons, really crop it, in an image editor.
Copy link to clipboard
Copied
Hi, is there a way to completely remove the cropped part? I have old images that were cropped and looking for ways to work within FM.
Copy link to clipboard
Copied
Also, is there a way to find the images that are cropped? I will be able to check the PDF, but checking if there is a way in FM to find before generating output.
Copy link to clipboard
Copied
Were these images cropped within FM in the way that Bob mentions or outside of FM? If inside, there's no way I know that discards the cropped portion & I don't think there's any easy method that detects which anchored frames contain an image cropped in that way.
Copy link to clipboard
Copied
Cropped within the FM. 😞
Copy link to clipboard
Copied
Here is a simple script that you can run on a document to see if it has an anchored frames with cropped graphics. Copy it to any location, save it with a .jsx extension, open your document, choose File > Script > Run, and select the script. It will show the Book Error Log with a link to any anchored frame that has cropped graphics.
#target framemaker
main ();
function main () {
var doc;
doc = app.ActiveDoc;
if (doc.ObjectValid () === 1) {
processDoc (doc);
}
}
function processDoc (doc) {
var msg, graphic, result;
msg = "Anchored frame has cropped graphics.";
graphic = doc.FirstGraphicInDoc;
while (graphic.ObjectValid () === 1) {
if (graphic.constructor.name === "AFrame") {
result = graphicsInAFrameAreCropped (graphic, doc);
if (result === true) {
writeBookErrorLog (graphic.TextLoc.obj.id, doc.id, 0, msg);
}
}
graphic = graphic.NextGraphicInDoc;
}
}
function graphicsInAFrameAreCropped (aframe, doc) {
var graphic;
graphic = aframe.FirstGraphicInFrame;
while (graphic.ObjectValid () === 1) {
if ((graphic.LocX < 0) || (graphic.LocY < 0)) {
return true;
}
if (((graphic.LocX + graphic.Width) > aframe.Width) ||
((graphic.LocY + graphic.Height) > aframe.Height)) {
return true;
}
graphic = graphic.NextGraphicInFrame;
}
}
function writeBookErrorLog (objId, docId, bookId, msg) {
/// msg = writeBookErrorLog (objId, docId, bookId, msg);
msg = 'log -b=' + bookId + ' -d=' + docId + ' -o=' + objId + ' --' + msg;
CallClient ('BookErrorLog', msg);
return msg; // Return for troubleshooting.
}
Copy link to clipboard
Copied
sathya34678687c39q: …is there a way to completely remove the cropped part?
You'd need to edit the original image (or extract it from FM) and crop it, then re-import.
I suspect that what FM does, when the Anchored Frame is smaller than the object extents, is apply what becomes a Clipping Mask in Postscript or PDF output. What happens in eBook or HTML output might be interesting to study—it may very well rasterize and crop.
The challenge for FM is that imported objects can have data structures that FM has no code for. I used to import complex vector images from CAD, usually as EPS, and there was no way that FM was going to re-write hundred of vector endpoints to remove hidden content from the output.