การรักษาแบบอักษรในไฟล์ SVG


24

สวัสดีฉันยังใหม่กับนักวาดภาพประกอบและสร้างภาพที่ใช้แบบอักษร "Skia-Regular" แต่เมื่อฉันบันทึกภาพนั้นในรูปแบบ. svgมันจะเปลี่ยนประเภทแบบอักษร และเมื่อฉันเปิดไฟล์ฟอร์แมท. svg ในเบราว์เซอร์ฟอนต์นั้นแตกต่างอย่างสิ้นเชิง ทุกคนได้โปรดบอกฉันว่าฉันกำลังทำอะไรผิด ฉันได้เปิดไฟล์. svg ใน notepad ++ แล้วและมันบอกว่า font-family = "'Skia-Regular' และยังคงเป็นฟอนต์ที่ไม่ใช่ Skia Regular.Any ขอบคุณสำหรับความช่วยเหลือใด ๆ ขอบคุณ

ภาพที่แนบมาสำหรับการอ้างอิง แนบรูปภาพแล้ว

คำตอบ:


31

หากคุณต้องการให้แน่ใจว่าข้อความจะมีลักษณะเดียวกันในทุกกรณี -

ก่อนอื่นคุณสามารถขยายข้อความก่อนที่จะบันทึกเป็น svg

ประการที่สองในส่วนแบบอักษรของกล่องโต้ตอบบันทึกคุณสามารถกด "แปลงเป็นร่าง"


2
ส่วนที่สองชัดเจน คุณช่วยอธิบายส่วนแรกฉันจะ "ขยาย" ข้อความได้อย่างไร
Rizwan606

5
@ Rizwan606 คุณเลือกข้อความด้วยเครื่องมือการเลือกและกดเมนูวัตถุแล้วกดที่ Expand (มันจะแปลงข้อความเป็นรูปร่าง) หรือคุณเลือกข้อความจากนั้นคลิกขวาแล้วเลือก shoose Create Outlines
Ilan

5
เพื่อชี้แจงคำตอบนี้คุณไม่จำเป็นต้องทำทั้งสองอย่าง วิธีใดวิธีหนึ่งจะทำงานอย่างอิสระ
Simon Woodside

⚙️ (การตั้งค่าขั้นสูงสำหรับประเภทไฟล์ที่ส่งออก) → SVG →แบบอักษรเป็น“ แปลงเป็นเค้าโครง”
КонстантинВан

9

เหตุผลที่แบบอักษรไม่สามารถแสดงผลได้อย่างถูกต้องกับชนิดแบบอักษรจริงเพราะเมื่อ SVG ถูกบันทึกโดยใช้แอปพลิเคชัน Illustrator แอปพลิเคชั่นแปลงการออกแบบเป็นรหัสโดยอัตโนมัติ และหากสังเกตอย่างใกล้ชิดชื่อแบบอักษรในรหัสไม่ตรงกับแบบอักษรจริงที่ติดตั้งภายในระบบ

เพื่อเอาชนะปัญหาของการแสดงผลแบบอักษรคุณจะต้องคัดลอกรหัส SVG จาก Illustrator และแก้ไขชื่อตัวอักษรเพื่อให้ตรงกับชื่อของแบบอักษรที่ติดตั้งในระบบ (เช่น: ชื่อแบบอักษรภายในรหัส SVG ซึ่งมาจาก Illustrator "Arial-Regular" แต่ชื่อของแบบอักษรที่ติดตั้งในระบบของคุณคือ "Arial Regular" ที่นี่คุณจะต้องแก้ไขรหัสเพื่อให้มี Font-Family เป็น "Arial Regular ".)

สิ่งนี้จะช่วยแก้ปัญหาของคุณโดยไม่จำเป็นต้องแปลงแบบอักษรเป็นเค้าโครง

หวังว่านี่จะช่วยได้!


1
ตรงนี้แหละ! Illustrator ใช้ชื่อ PostScript สำหรับแบบอักษรเมื่อคุณทำไฟล์> บันทึกและเลือก SVG คุณท้ายด้วย "MyriadPro-Regular" แทนที่จะเป็น "Myriad Pro" ตามที่คุณคาดหวังและเบราว์เซอร์ของคุณจะไม่ทำงานกับชื่อ PostScript ในแบบที่ Illustrator ทำ วิธีแก้ปัญหาคือใช้ไฟล์> ส่งออกเพื่อบันทึก SVG เนื่องจากจะส่งออกนามสกุลที่เหมาะสมแทนชื่อ PostScript
Michael Thompson

@Michael Thompson เมื่อฉันเลือกไฟล์> ส่งออก SVG ไม่ใช่หนึ่งในตัวเลือก ฉันใช้ CS5 นี่เป็นตัวเลือกในรุ่นก่อนหน้า / หลังหรือไม่
Max Starkenburg

@MaxStarkenburg: เมนูส่งออกมีการเปลี่ยนแปลงอย่างรุนแรงระหว่างเวอร์ชันต่างๆ ในรุ่นที่ใหม่กว่ามีสามวิธีในการบันทึก / ส่งออกไปยัง SVG: ไฟล์> บันทึกเป็น> (เลือกประเภท SVG); ไฟล์> ส่งออก> ส่งออกเป็น ... > (เลือกประเภท SVG) และไฟล์> ส่งออกสำหรับหน้าจอ> (เพิ่มรูปแบบ SVG)
Michael Thompson

4

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

สำหรับสาเหตุที่เบราว์เซอร์อาจไม่ทราบถึงรูปแบบตัวอักษรที่คุณพยายามอ้างอิงนั่นไม่ชัดเจนเนื่องจากฉันสันนิษฐานว่าคุณกำลังทดสอบบนคอมพิวเตอร์เครื่องเดียวกับที่คุณใช้ขณะสร้างไฟล์ svg เป็นไปได้ว่าตัวอักษรนั้นสามารถเลือกได้ใน Illustrator แต่ไม่ได้ติดตั้งอย่างเป็นทางการในระดับระบบปฏิบัติการ


ใช่ฉันกำลังทดสอบบนคอมพิวเตอร์เครื่องเดียวกับที่ฉันกำลังสร้างไฟล์ svg และคุณโปรดแก้ไขฉันได้ไหมถ้าฉันผิด ฉันใช้ส่วนแรกของการตอบกลับเนื่องจากฉันต้องระบุเส้นทางไปยังไฟล์ font .ttf ของ Skia Regular ในคุณสมบัติ Font-Family หรือไม่
Rizwan606

มันขึ้นอยู่กับเบราว์เซอร์ที่จะจับคู่ชื่อแบบอักษรกับแบบอักษรที่ติดตั้งดังนั้น "ไม่" คุณจะไม่ให้เส้นทางไปยัง ttf การอ้างอิงคล้ายกับไวยากรณ์ css font-face ซึ่งอนุญาตรายการที่คั่นด้วยเครื่องหมายจุลภาคของลักษณะตระกูล font เบราว์เซอร์อาจระบุชื่อแบบอักษรต่างกัน
horatio

โปรดทราบว่าสำหรับโลโก้และเรื่องที่เผยแพร่ในลักษณะนี้ (PDF ฯลฯ ) ที่ตัวอักษรมีความสำคัญคุณควรฝังแบบอักษรหรือแปลงเป็นเส้นทาง ดังนั้นการแก้ไขการอ้างอิงนี้อาจไม่ใช่วิธีแก้ปัญหาที่ดีเพราะคุณต้องพึ่งพาบุคคลที่ 3 ที่มีการติดตั้งแบบอักษรที่เหมาะสมแล้ว
horatio

2

เก็บถาวรสำหรับเว็บ:

  1. ใช้แบบอักษรของ Google
  2. ใช้ตระกูลแบบอักษรได้สูงสุดสองตระกูลเท่านั้น

ส่งออก: แบบอักษร: (ข้อความ: svg, subconjunto: none) คุณสมบัติ svg: (องค์ประกอบสไตล์)

ภายในสไตล์ของไฟล์ผลลัพธ์ให้แก้ไข:

  1. แนบบรรทัด "@import"
  2. แนบ "px" กับทุกขนาดแบบอักษร
  3. เปลี่ยนชื่อตัวอักษร

ผล:

<style type="text/css">
@import url(http://fonts.googleapis.com/css?family=Roboto+Condensed:300italic,400italic,700italic,400,300,700);
body {}

.st0{fill:#868686;}
.st1{font-family:'Roboto Condensed';}
.st2{font-size:14.414px;}
.st3{letter-spacing:55px;}
.st4{fill:#1D1D1B;}
.st5{font-family:'Roboto Condensed'; font-weight: 700;}
.st6{letter-spacing:51px;}
.st7{letter-spacing:45px;}
.st8{letter-spacing:40px;}


1
คำตอบนี้สั้นเกินไป ฉันไม่สามารถแม้แต่จะบอกได้ว่ามันหมายถึงไฟล์ SVG หรือวิธีการแก้ปัญหาอื่น ๆ ...
jiggunjer

1

โอกาสที่พีซีของคุณจะไม่มีไฟล์ฟอนต์ตระกูล (Skia- ปกติ) อยู่ในเครื่อง ดังนั้นเมื่อคุณเปิดไฟล์ SVG ของคุณบนเบราว์เซอร์ไฟล์นั้นจะแสดงผลโดยใช้แบบอักษรเริ่มต้นของระบบซึ่งก็คือ Times New Roman เกือบตลอดเวลา มีวิธีแก้ไขปัญหาหลายประการ:

  1. ใช้ @import เพื่ออ้างถึง Google Fonts API (ขึ้นอยู่กับว่าคุณฝังรูปภาพ SVG ของคุณบนเว็บไซต์ของคุณได้ผลดีหากคุณใช้ SVG แบบอินไลน์และแท็กวัตถุ SVG)
  2. แปลงฟอนต์ของคุณเป็นพา ธ (ซึ่งเพิ่มขนาดไฟล์และผลลัพธ์เป็นข้อความพร่ามัวเมื่อคุณสูญเสียการแสดงผลClearType )
  3. ฝังแบบอักษรลงในไฟล์ SVG ของคุณโดยใช้Nano

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการใช้แบบอักษรที่กำหนดเองใน SVG ได้ที่นี่: https://css-tricks.com/using-custom-fonts-with-svg-in-an-image-tag/

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