Как я могу получить координату Y последнего бита текста в PDF, используя iText? - PullRequest
0 голосов
/ 11 сентября 2018

Итак, я читаю несколько существующих PDF-файлов и хочу объединить текст из 2 PDF-файлов на одну новую страницу.

Я хочу разместить 2-ю pdf-страницу только на пару строк ниже исходного текста из первого pdf-файла. Таким образом, оба новых текста появляются рядом друг с другом в новом файле PDF.

В настоящее время у меня есть это, чтобы занять место в PDF.

public class TextMeasurementListener : IEventListener
{
    private float space = 0.0f;

    public void EventOccurred(IEventData data, EventType type)
    {
        if (type != EventType.RENDER_TEXT)
            return;

        TextRenderInfo textRenderInfo = (TextRenderInfo)data;

        var renderInfos = textRenderInfo.GetCharacterRenderInfos();

        foreach (var charInfo in renderInfos)
        {
            CharacterRenderInfo characterRenderInfo = new CharacterRenderInfo(charInfo);
            space += characterRenderInfo.GetBoundingBox().GetWidth() * characterRenderInfo.GetBoundingBox().GetHeight();
        }
    }

    public float GetReservedSpaceInPoints()
    {
        return space;
    }

    ICollection<EventType> IEventListener.GetSupportedEvents()
    {
        //throw new NotImplementedException();
        return null;
    }
}

Используя это, я затем помещаю текст из этого pdf на новый, как этот

canvas.AddXObject(pageCopy, 0, -400);

-400 - это середина нового pdf, но мне нужен более точный способ сделать это .. GetReservedSpaceInPoints может вернуть 78000 для большого абзаца, но я хочу расположить последующий pdf вскоре после этого ... но как могу ли я надежно связать 78000 с координатой Y на странице? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...