本文整理汇总了C++中ps_output::put_literal_symbol方法的典型用法代码示例。如果您正苦于以下问题:C++ ps_output::put_literal_symbol方法的具体用法?C++ ps_output::put_literal_symbol怎么用?C++ ps_output::put_literal_symbol使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ps_output
的用法示例。
在下文中一共展示了ps_output::put_literal_symbol方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: set_style
void ps_printer::set_style(const style &sty)
{
char buf[1 + INT_DIGITS + 1];
for (int i = 0; i < ndefined_styles; i++)
if (sty == defined_styles[i]) {
sprintf(buf, "F%d", i);
out.put_symbol(buf);
return;
}
if (ndefined_styles >= MAX_DEFINED_STYLES)
ndefined_styles = 0;
sprintf(buf, "F%d", ndefined_styles);
out.put_literal_symbol(buf);
const char *psname = sty.f->get_internal_name();
if (psname == 0)
fatal("no internalname specified for font `%1'", sty.f->get_name());
char *encoding = ((ps_font *)sty.f)->encoding;
if (sty.sub == 0) {
if (encoding != 0) {
char *s = ((ps_font *)sty.f)->reencoded_name;
if (s == 0) {
int ei = set_encoding_index((ps_font *)sty.f);
char *tem = new char[strlen(psname) + 1 + INT_DIGITS + 1];
sprintf(tem, "%[email protected]%d", psname, ei);
psname = tem;
((ps_font *)sty.f)->reencoded_name = tem;
}
else
psname = s;
}
}
else
psname = get_subfont(sty.sub, psname);
out.put_fix_number((font::res/(72*font::sizescale))*sty.point_size);
if (sty.height != 0 || sty.slant != 0) {
int h = sty.height == 0 ? sty.point_size : sty.height;
h *= font::res/(72*font::sizescale);
int c = int(h*tan(radians(sty.slant)) + .5);
out.put_fix_number(c)
.put_fix_number(h)
.put_literal_symbol(psname)
.put_symbol("MF");
}
else {
out.put_literal_symbol(psname)
.put_symbol("SF");
}
defined_styles[ndefined_styles++] = sty;
}
示例2: encode_subfont
void ps_printer::encode_subfont(subencoding *sub)
{
assert(sub->glyphs != 0);
out.put_literal_symbol(make_subencoding_name(sub->idx))
.put_delimiter('[');
for (int i = 0; i < 256; i++)
{
if (sub->glyphs[i])
out.put_literal_symbol(sub->glyphs[i]);
else
out.put_literal_symbol(".notdef");
}
out.put_delimiter(']')
.put_symbol("def");
}
示例3: reencode_font
void ps_printer::reencode_font(ps_font *f)
{
out.put_literal_symbol(f->reencoded_name)
.put_symbol(make_encoding_name(f->encoding_index))
.put_literal_symbol(f->get_internal_name())
.put_symbol("RE");
}
示例4: define_encoding
void ps_printer::define_encoding(const char *encoding, int encoding_index)
{
char *vec[256];
int i;
for (i = 0; i < 256; i++)
vec[i] = 0;
char *path;
FILE *fp = font::open_file(encoding, &path);
if (fp == 0)
fatal("can't open encoding file `%1'", encoding);
int lineno = 1;
const int BUFFER_SIZE = 512;
char buf[BUFFER_SIZE];
while (fgets(buf, BUFFER_SIZE, fp) != 0) {
char *p = buf;
while (csspace(*p))
p++;
if (*p != '#' && *p != '\0' && (p = strtok(buf, WS)) != 0) {
char *q = strtok(0, WS);
int n = 0; // pacify compiler
if (q == 0 || sscanf(q, "%d", &n) != 1 || n < 0 || n >= 256)
fatal_with_file_and_line(path, lineno, "bad second field");
vec[n] = new char[strlen(p) + 1];
strcpy(vec[n], p);
}
lineno++;
}
a_delete path;
out.put_literal_symbol(make_encoding_name(encoding_index))
.put_delimiter('[');
for (i = 0; i < 256; i++) {
if (vec[i] == 0)
out.put_literal_symbol(".notdef");
else {
out.put_literal_symbol(vec[i]);
a_delete vec[i];
}
}
out.put_delimiter(']')
.put_symbol("def");
fclose(fp);
}
示例5: set_space_code
void ps_printer::set_space_code(unsigned char c)
{
out.put_literal_symbol("SC")
.put_number(c)
.put_symbol("def");
}