|  | @@ -184,7 +184,7 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          function private_drawUnderline() {
 | 
	
		
			
				|  |  | -            //A. 暂不支持角度; B. 坐标已经translate
 | 
	
		
			
				|  |  | +            //A. 暂不支持角度; B. PDF输出时,坐标没有translate
 | 
	
		
			
				|  |  |              let ctx = doc;
 | 
	
		
			
				|  |  |              //1. 计算下划线的相关坐标
 | 
	
		
			
				|  |  |              let width = ctx.widthOfString(val);
 | 
	
	
		
			
				|  | @@ -192,22 +192,20 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
 | 
	
		
			
				|  |  |              let startX = area[JV.IDX_LEFT], startY = area[JV.IDX_TOP], endX = area[JV.IDX_RIGHT], endY = area[JV.IDX_BOTTOM];
 | 
	
		
			
				|  |  |              // let startX = 0, startY = 0, endX = width, endY = startY;
 | 
	
		
			
				|  |  |              if (control.Horizon === "left") {
 | 
	
		
			
				|  |  | -                // 无变化;
 | 
	
		
			
				|  |  | +                startX = Math.round(area[JV.IDX_LEFT] + JV.OUTPUT_OFFSET[JV.IDX_LEFT]);
 | 
	
		
			
				|  |  |              } else if (control.Horizon === "right") {
 | 
	
		
			
				|  |  | -                startX = Math.round(startX - width);
 | 
	
		
			
				|  |  | +                startX = Math.round(area[JV.IDX_RIGHT] - width - JV.OUTPUT_OFFSET[JV.IDX_RIGHT]);
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -                startX = Math.round(startX - width / 2);
 | 
	
		
			
				|  |  | +                startX = Math.round( area[JV.IDX_LEFT] + (area[JV.IDX_RIGHT] - area[JV.IDX_LEFT] - width) / 2);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              endX = Math.round(startX + width);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              if (control.Vertical === "top") {
 | 
	
		
			
				|  |  | -                startY += JV.OUTPUT_OFFSET[JV.IDX_TOP] + JV.OUTPUT_OFFSET[JV.IDX_BOTTOM];
 | 
	
		
			
				|  |  | +                startY = Math.round(area[JV.IDX_TOP] + JV.OUTPUT_OFFSET[JV.IDX_TOP] + JV.OUTPUT_OFFSET[JV.IDX_BOTTOM] + height);
 | 
	
		
			
				|  |  |              } else if (control.Vertical === "bottom") {
 | 
	
		
			
				|  |  | -                // startY = Math.round(startY);
 | 
	
		
			
				|  |  | -                startY += JV.OUTPUT_OFFSET[JV.IDX_TOP] + JV.OUTPUT_OFFSET[JV.IDX_BOTTOM];
 | 
	
		
			
				|  |  | +                startY = Math.round(area[JV.IDX_BOTTOM] + JV.OUTPUT_OFFSET[JV.IDX_BOTTOM]);
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -                startY = Math.round(height / 2) - JV.OUTPUT_OFFSET[JV.IDX_TOP] - JV.OUTPUT_OFFSET[JV.IDX_BOTTOM];
 | 
	
		
			
				|  |  | -                // startY += JV.OUTPUT_OFFSET[JV.IDX_TOP] + JV.OUTPUT_OFFSET[JV.IDX_BOTTOM];
 | 
	
		
			
				|  |  | +                startY = Math.round( area[JV.IDX_TOP] + (area[JV.IDX_BOTTOM] - area[JV.IDX_TOP] + height) / 2) + JV.OUTPUT_OFFSET[JV.IDX_TOP] + JV.OUTPUT_OFFSET[JV.IDX_BOTTOM];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              endY = Math.round(startY);
 | 
	
		
			
				|  |  |              //2. 画线
 | 
	
	
		
			
				|  | @@ -226,13 +224,13 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          let rotateOptions;
 | 
	
		
			
				|  |  |          if (font[JV.FONT_PROPS[5]] === 'T' && parseInt(font.FontAngle) === 0) {
 | 
	
		
			
				|  |  | -            // private_drawUnderline();
 | 
	
		
			
				|  |  | +            private_drawUnderline();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (parseInt(font.FontAngle) !== 0) {
 | 
	
		
			
				|  |  |              if (control){
 | 
	
		
			
				|  |  | -                rotateOptions=private_setupAreaRotateOption(area,w,control.Vertical,dftFontHeight, output);
 | 
	
		
			
				|  |  | -            }else {
 | 
	
		
			
				|  |  | -                rotateOptions=private_setupAreaRotateOption(area,w,"bottom",dftFontHeight, output);
 | 
	
		
			
				|  |  | +                rotateOptions = private_setupAreaRotateOption(area,w,control.Vertical,dftFontHeight, output);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                rotateOptions = private_setupAreaRotateOption(area,w,"bottom",dftFontHeight, output);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              doc.rotate(font.FontAngle,rotateOptions);
 | 
	
		
			
				|  |  |          }
 |