@Matthias एकल स्ट्रोक फोंट फ़ॉन्ट का भरा क्षेत्र के आधार पर स्वयं को परिभाषित। टीटीएफ (रूपरेखा) फोंट भरने वाले क्षेत्र के आसपास के स्ट्रोक द्वारा प्रत्येक चरित्र को परिभाषित करते हैं। इसलिए, वे आवश्यक रूप से एक बंद आकार बनाते हैं। दूसरे शब्दों में, "असली एकल स्ट्रोक" रूपरेखा फ़ॉन्ट होना संभव नहीं है, क्योंकि एकल स्ट्रोक फ़ॉन्ट्स में केवल एक भरे क्षेत्र होते हैं। .NET Framework केवल टीटीएफ फोंट का समर्थन करता है।
सौभाग्य से, कुछ फोंट हैं जो एक-स्ट्रोक व्यवहार को अनुकरण करते हैं जो स्वयं के रूप में रूपरेखा स्ट्रोक को बंद कर देते हैं। ज्यादातर, वे सीएनसी साजिश सॉफ्टवेयर द्वारा उपयोग किया जाता है। ज़िप फ़ाइल में link यहां एक ही फ़ॉन्ट्स शामिल हैं जो @ सिमन मॉरीयर ने सुझाव दिया है।
मैंने पहले के साथ प्रयोग किया और वास्तव में मैं संलग्न क्षेत्रों के लिए एक अलग रास्ता नहीं देख सका। मैंने कुछ कोड लिखा था जो एक नियमित फ़ॉन्ट के स्ट्रोक को अपने आप में बंद कर देता है, लेकिन कुछ धब्बे में घुमावदार क्षेत्र गायब हो जाते हैं। जो भी आंतरिक एल्गोरिदम .NET स्क्वैश आउटलाइन से 1px पथ बनाने का प्रयास करने के लिए उपयोग करता है, वह काम नहीं करता है साथ ही एक अच्छी तरह से डिज़ाइन किए गए फ़ॉन्ट का उपयोग भी करता है। तो, यह उतना ही अच्छा है जितना कि यह .NET का उपयोग करने जा रहा है।
आप यह कोड देखने के लिए इस कोड का उपयोग कर सकते हैं कि प्रत्येक फ़ॉन्ट उन्हें इंस्टॉल करने के बाद क्या उत्पादन करता है। या, मुझे लगता है कि आप उन्हें अपने सॉफ्टवेयर में बस कोशिश कर सकते हैं :) किसी भी तरह से, मुझे आशा है कि यह आपके लिए उपयोगी होगा।
यह Graphics.DrawPath
का आउटपुट है, Graphics.FillPath
नहीं।
private void button1_Click(object sender, EventArgs e) {
DrawText("single stroke ttf engraving fonts");
}
private void DrawText(string text) {
using (Graphics g = panel.CreateGraphics())
using (Font font = new System.Drawing.Font("1CamBam_Stick_1", 50, FontStyle.Regular))
using (GraphicsPath gp = new GraphicsPath())
using (StringFormat sf = new StringFormat()) {
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
gp.AddString(text, font.FontFamily, (int)font.Style, font.Size, panel.ClientRectangle, sf);
g.Clear(Color.Black);
g.DrawPath(Pens.Red, gp);
}
}
इसके अलावा, यहाँ अगर आप इस के बहुत कर रही पर योजना को पढ़ने के लिए एक बहुत ही संबंधित लेख है। http://tipsandtricks.rolanddga.com/software/how-to-generate-single-line-fonts-for-use-with-dr-engrave/
एक साधारण प्रोजेक्ट के लिए मैं 2 डी-निर्देशांक 1 पिक्सेल चौड़ाई के लिए लेता हूं और ऑब्जेक्ट के चारों ओर "रास्ता" खोजने के लिए ए * एल्गोरिदम का उपयोग करता हूं। – Lucian
यह भी देखें [यहां] (http://forums.adobe.com/message/1277079) लेकिन यह एडोब और सीएडी ऐप्स के लिए है। एकमात्र समाधान जो मैंने पाया है, एकल-पंक्ति ट्रू टाइप फ़ॉन्ट्स हैं जिन्हें सिस्टम पर स्थापित किया जाना है। – Matthias
क्या आप अधिक विशिष्ट हो सकते हैं? आप "पथ की तरह एकल" कहते हैं, फिर इसमें दो पंक्तियों वाली एक छवि दिखाएं। यह स्पष्ट नहीं है कि आप क्या करने की कोशिश कर रहे हैं। –