2013-07-29 3 views
0

XSL-FO에서는 문서의 오른쪽에 순수 텍스트를 정렬하기 쉽습니다. 그러나 전체 테이블을 문서의 오른쪽에 정렬하는 것은 매우 어렵습니다. 내가 원하는 무엇플로트 전체 표 오른쪽 - XSL-FO

이 같은 것입니다 :

fo:table align=left 

{Table content} 

/fo:table 

그리고 나는 <fo:float> 목적이 있다는 것을 알고 있지만, 내가 그것을 원하는 방식으로 작동하는 것, 또는 경우하지 않습니다 그렇습니다. 어떻게 작동하는지에 대한 설명은 제가 발견 할 수있는 모든 경우에 잘못 표현되어 있습니다.

요약하면 : XSL-FO에서 테이블 플로트를 왼쪽으로 만들려면 어떻게해야합니까?

편집 : 플로트가 작동하지 않는 이유를 알아 냈습니다. 분명히 아파치 FOP 버전에서는 지원되지 않습니다. 알려진 대안?

답변

3

"float"이라는 용어는 XSL-FO에서 특별한 의미가 있습니다. 테이블을 수직 흐름에서 꺼내어 페이지의 시작 부분에 놓고 나머지 흐름을 테이블의 끝 부분에서 계속하도록하려면 <float float="start"><table>...</table></float>이이를 수행하는 방법입니다 XSL-FO.

당신의 질문의 제목과 텍스트는 "오른쪽"에 떠있는 것에 대해 이야기합니다. 그렇다면 당신은 페이지의 끝 부분에 떠있는 것을 의미한다고 가정합니다. 당연히 <float float="end"> 일 것입니다.

테이블을 플로차트 밖으로 가져 오지 않으려면 테이블을 흐르게하고 XSL-FO에서 <table-and-caption text-align="end">을 사용하여 테이블의 끝 부분에 테이블을 정렬하기를 원합니다. 캡션을 사용하지 마십시오. 그러나 모든 상용 XSL-FO 엔진이이 점에서 사양을 지원하는 것은 아닙니다.

내 고객에게 사용한 도구가 아니기 때문에 FOP에 대한 조언을 드릴 수 없습니다.

+0

나는 나의 설명의 느슨한 성질에 사과한다. 나는 기술적 인 용어 ("float"객체의 정확한 의미와 같은)에 관해서, 내가해야 할 것보다 조금 덜 웅변하는 경향이 있음을 인정한다. 불행히도, 주어진 방법대로 솔루션을 사용해 보았습니다. (덧붙여서 이 아니라도 이 맞습니까?)하지만 내 버전의 FOP에서는 작동하지 않는 것 같습니다. 그러나 다른 드라이버를 사용하고 있다면 다른 사람들이 사용하지 못하도록하지는 않을 것입니다. – Zibbobz

+3

내 스타일 시트에서 접두사없이 ''을 쓸 수 있도록'xmlns = "http://www.w3.org/1999/XSL/Format"'을 사용합니다. "fo :"접두어에는 특별한 것이 없습니다 ... xmlns : hello = "http://www.w3.org/1999/XSL/Format"'이면 ''이 될 수 있습니다. –

0

몇 가지 실험을 한 후에 해결책을 찾았습니다. 그건 .. 우아하지 않지만, 적어도 말하지만 작동합니다. 이렇게하면 3cm 열과 5cm 열로 7cm 오른쪽으로 조정되는 표가 생성되지만 빈 열 7cm 열로 신중하게 형식을 지정하지 않으면 사용자가 표의 왼쪽에 내용을 쓰지 못합니다. 이 몇 가지 결함 (명시 적으로 매우 세련되고, 각 행을 포맷하지 않고 테이블의 왼쪽에 쓸 수없는)을 가지고 있지만 아파치 FOP의 솔루션으로 작동

fo:table width="15cm" 
fo:table-column column-width="7cm"/ 
fo:table-column column-width="3cm"/ 
fo:table-column column-width="5cm"/ 
fo:table-row 
fo:table-cell border="none" 
[Intentionally left blank] 
/fo:table-cell 
fo:table-cell border="solid" 
[Content of 3cm column] 
/fo:table-cell 
fo:table-cell border="solid" 
[Content of 5cm column] 
/fo:table-cell 
/fo:table-row 
/fo:table 

참고.

+0

우아하지 않고 float가 아니라 두 개의 내용이있는 세 개의 열 테이블을 포맷합니다. "떠 다니는 것"은 나를 떠 다니고 내용이 나를 주위로 흐르게하는 것을 의미합니다. 그래서 당신이 잘못 말하지 않는 한 당신의 질문에 대한 대답이 아닙니다. –

+0

질문에 대한 실제 답변보다 내 문제에 대한 해결책이라고 생각합니다. 이상적인 대답은 모든 경우에 적용될 수 있으며 텍스트를 둘러 볼 수 있습니다 (이 경우 실제로 원하지 않는 질문이지만 답변을 이끌어 낼 수있는 질문을하고 싶었습니다. 상태). – Zibbobz