我有以下代码:
if($tip_dente == 2){
for($i=0; $i<=7; $i++){
if(in_array($array_p1n[$i], $array_denti_new)){
$pdf->Cell(0.5,1,$pdf->Image($array_p1[$i],$pdf->GetX(),$pdf->GetY(),0,1,'PNG'),1,C,1,false); // larghezza, altezza, txt, bordi, linea a capo, allineamento orizzontale, riempimento colore, ignorare
$pdf->Cell(0.2,1,'',0,0,C,false);
}else{
$pdf->Cell(0.5,1,$pdf->Image($array_p1[$i],$pdf->GetX(),$pdf->GetY(),0,1,'PNG'),0,C,1,false); // larghezza, altezza, txt, bordi, linea a capo, allineamento orizzontale, riempimento colore, ignorare
$pdf->Cell(0.2,1,'',0,0,C,false);
}
}
}
除了一件事,一切都很美妙。第一行似乎添加了额外的空间:
如何摆脱这个额外空间?
答案 0 :(得分:1)
虽然我无法使用我的系统上的控制代码进行测试,但在此文本之后您很可能需要\n
:
printf(Y "\n\n\"IT'S PEANUT BUTTER JELLY TIME\"\n" D);
至少,这在Windows系统上解决了同样的问题(Y
和D
似乎是颜色控制代码,所以这不应该影响位置。< / p>
<强>更新强>:
似乎也存在position control code(虽然不能在这里测试):
#define GOTOYX "\x1B[%.2d;%.2dH"
Set cursor to (y, x). More...
因此,您可以使用此代码来定位第一行而不是额外的换行符。
答案 1 :(得分:0)
尝试在第一行之前插入\n
字符。
答案 2 :(得分:0)
我;在ubuntu linux 14.04上使用gcc进行编译。
以下代码可以干净地编译并执行所需的操作。
我无法使\1b[2j
(清晰屏幕)工作,并发现我不需要它。
一些重大变化是
\n
结束每个图形的最后一行,因此最后一行始终立即输出if(true)
语句修改为在彩色和纯文本输出之间交替fflush()
w
而不输出整个图形输出而不是全部图形具有相同的高度/宽度。以下代码是结果
#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <stdbool.h>
#define D "\x1b[0m"
#define Y "\x1b[33;1m"
#define W "\x1b[37;1m"
#define B "\x1b[30;1m"
#define CURSOR_1_1 "\x1b[1;1f \n"
void printLeft(bool color)
{
if (color) {
printf(CURSOR_1_1
Y
" __ \n"
" / | \n"
" / \\ \n"
" / | \n"
W
" _\\| " Y "|" W "[" B "*" W "][" B "*" W "]" Y "| " W "|/_\n"
" \\ " Y "| | " W "/ \n"
" --" Y "|" W "\\____/" Y "|" W "-- \n"
Y
" \\ | \n"
" \\ / \n"
" \\ | \n"
W
" |" Y "\\__|" W "| \n"
" | | \n"
" ==| |= \n");
} else {
printf(CURSOR_1_1
" __ \n"
" / | \n"
" / \\ \n"
" / | \n"
" _\\| |[*][*]| |/_ \n"
" \\ | | / \n"
" --|\\____/|-- \n"
" \\ | \n"
" \\ / \n"
" \\ | \n"
" |\\__|| \n"
" | | \n"
" ==| |== \n");
}
}
void printRight(bool color) {
if (color) {
printf(CURSOR_1_1
Y
" __ \n"
" | \\ \n"
" / \\ \n"
" | \\ \n"
W
" _\\| " Y "|" W "[" B "*" W "][" B "*" W "]" Y "| " W "|/_ \n"
" \\ " Y "| | " W "/ \n"
" --" Y "|" W "\\____/" Y "|" W "-- \n"
Y
" | / \n"
" \\ / \n"
" | / \n"
W
" |" Y "|__/" W "| \n"
" | | \n"
" ==| |== \n");
} else {
printf(CURSOR_1_1
" __ \n"
" | \\ \n"
" / \\ \n"
" | \\ \n"
" _\\| |[*][*]| |/_ \n"
" \\ | | / \n"
" --|\\____/|-- \n"
" | / \n"
" \\ / \n"
" | / \n"
" ||__/| \n"
" | | \n"
" ==| |== \n");
}
}
void printBottom(bool color) {
if (color) {
printf(CURSOR_1_1
Y
" __ \n"
" | | \n"
" / \\ \n"
" | | \n"
" |" W "[" B "*" W "][" B "*" W "]" Y"| \n"
" | | \n"
W
" _\\| " Y "|" W "\\____/" Y "| " W "|/_ \n"
" \\/" Y "| |" W "\\/ \n"
Y
" | | \n"
W
" /\\" Y "\\ /" W "/\\ \n"
" ==/ " Y "|__| " W "\\== \n"
" \n"
" \n");
} else {
printf(CURSOR_1_1
" __ \n"
" | | \n"
" / \\ \n"
" | | \n"
" |[*][*]| \n"
" | | \n"
" _\\| |\\____/| |/_ \n"
" \\/| |\\/ \n"
" | | \n"
" /\\\\ //\\ \n"
" ==/ |__| \\== \n"
" \n"
" \n");
}
}
int main( void )
{
int counter = 0;
printf(CURSOR_1_1);
while (1)
{
if (counter == 0) printLeft(true);
else if (counter == 2) printRight(true);
else printBottom(true);
if (counter&0x01)
{
printf(Y "\n\n\"IT'S PEANUT BUTTER JELLY TIME\"%s\n", D );
}
else
{
printf("\n\n\"IT'S PEANUT BUTTER JELLY TIME\"\n");
}
//fflush(stdout);
usleep(200000);
counter = (counter + 1) % 4;
}
return 0;
}