วิธีปรับขนาดกล่องข้อความให้พอดีกับข้อความ


19

ฉันต้องการให้พอดีกับบอร์ดศิลปะกับงานศิลปะที่เลือก (กล่องข้อความสองกล่อง) - กล่องข้อความมีขนาดใหญ่กว่าข้อความที่อยู่ในพวกเขา - ฉันจะใส่ (ย่อขนาด) ลงในกล่องเพื่อห่อข้อความให้แน่นได้อย่างไร

รุ่น Illustrator - CS5

คำตอบ:


9

Illustrator ไม่มี (ตั้งแต่ 5.1) มีคุณสมบัติ "พอดีกับเนื้อหา" เช่น InDesign เพียงเลือกกรอบข้อความและลากที่จับเข้ามาด้านในจนกระทั่งเฟรมแนบกับข้อความ


15

ตอนนี้เป็นคุณลักษณะที่มีอยู่แล้วภายในปี 2014 ใน Adobe Illustrator CC คุณจะพบมันภายใต้ประเภท> ตัวเลือกประเภทพื้นที่> ขนาดอัตโนมัติ


ใน CC19 ฉันไม่เห็นตัวเลือกนี้ มันขยับหรือเปล่า? @Matt M.
FabricioG

9

มีสคริปต์สำหรับสิ่งนั้น (นี่อาจเป็นความคิดเห็นของสคริปต์ Joonas ที่บอกถึง - ใช้ได้ดีใน CS6)

(เพื่อให้พอดีกับบอร์ดศิลปะหลังจากใส่กล่องข้อความให้ใช้เครื่องมือบอร์ดศิลปะและคลิกที่กล่องข้อความ)

มารยาทของเคลทำแผนที่ที่มีการโหลดของสคริปที่ดี (สคริปต์ของพวกเขาไปยังจุดสวิทช์และข้อความในพื้นที่นอกจากนี้ยังจะขอแนะนำ) คุณสามารถดาวน์โหลดข้อความ Fit To สคริปต์เนื้อหาที่นี่ มันจะทำสิ่งที่ตรงกับที่บอกในดีบุก - ปรับขนาด (ขึ้นหรือลง) กรอบข้อความของพื้นที่ข้อความเพื่อให้พอดีกับความสูงของบรรทัดข้อความ

ต่อไปนี้เป็น 'ก่อน' และ 'หลัง' ของสคริปต์นี้รวมถึงลูกพี่ลูกน้องของมันจาก Kelso Cartography , ปรับความกว้างของข้อความให้พอดีกับเนื้อหา , ปรับขนาดกรอบข้อความเพื่อลบพื้นที่ที่ไม่ได้ใช้ (pic มารยาทของvectips ):

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือ teh codez ในกรณีที่การเชื่อมโยงลงไป เครดิตทั้งหมดให้กับผู้เขียนต้นฉบับ เพียงบันทึกเป็นไฟล์. js ในillustrator/presets/[some language code]/scriptsโฟลเดอร์ของคุณจากนั้นรีบูต Illustrator:

// FitToTextContent_Depth
// Nathaniel Vaughn KELSO
// Last modified: 2008.March.29
// Created: 2007.July.8 
// at Hyattsville, MD
// Version 2
// (c) nvkelso2008@gmail.com (but remove the 2008 bit)
// DESC: Fits the text frame (rectangular path shapes only!) to fit the text content. 
// DESC: Will either shrink or expand the depth of the text box as appropriate. 
// TODO: Extend to work with text on a line (PATHTEXT)
// TODO: watch for 4 point paths that are not rectangular
// TODO: watch for 4 point paths that are rotated

var includeExtraLines = 0.5;

if(documents.length > 0) {
    doc = activeDocument;
    mySelection = activeDocument.selection;

    // If there are enough to process
    if (mySelection instanceof Array)
    {
        // For each of the selected items
        for(i=0; i<mySelection.length; i++) {
            // That are textFrames
            if (mySelection[i].typename == "TextFrame" && mySelection[i].kind == TextType.AREATEXT ) {
                obj = mySelection[i];

                // We only want to do this on rectangular text areas
                // TODO: Take care of rotation issues from MakePointType script
                if( obj.textPath.pathPoints.length == 4 ) {
                    objTop = obj.top;
                    objLeft = obj.left;

                    // Make the new point type object and locate it
                    // Make sure the new object is in the same Z stacking order as the original
                    copy1 = obj.duplicate(obj, ElementPlacement.PLACEBEFORE);
                    //copy1.move(obj, ElementPlacement.PLACEBEFORE);

                    // now make the text box much bigger, but not absurdly big
                    // TODO: This could be better approximated by itterating thru all the WORDS in the textFrame and 
                    // comparing it to all the WORDS in each of the visible text LINES. Then apply the difference / total words to the scaling
                    if( copy1.height * 10 < 2000 ) {
                        copy1.textPath.height = copy1.height * 10;
                    } else {
                        copy1.textPath.height = 2000;
                    }

                    howManyLines = copy1.lines.length;

                    outlineObject = copy1.duplicate();
                    outlineObject = outlineObject.createOutline();

                    targetHeight = outlineObject.height + includeExtraLines * (outlineObject.height / howManyLines );

                    // Now assign y-axis depth of the point text to the area text box
                    rect = obj.parent.pathItems.rectangle(copy1.textPath.top, copy1.textPath.left, obj.width, targetHeight);
                    copy2 = obj.parent.textFrames.areaText(rect);
                    copy2.selected = true;
                    rect.selected = true;

                    // Always delete these intermediate objects
                    outlineObject.remove();
                    copy1.remove();

                    // Now take care of the end and original objects
                    obj.textRange.duplicate(copy2); 
                    obj.remove();   
                }
            }
        }
    }
}

ฉันจะติดตั้งสิ่งนี้ใน Mac OS X ได้ที่ไหน
Alec Jacobson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.