2013-04-16 158 views
1

我有一個PDF,其構造是這樣的:查找位置

________________________________________________________ 
|        |      | 
| 1. This is a simple question | A B C D E F G | 
|________________________________|______________________| 
|        |      | 
| 2. Another simple question  | A B C D E F G | 
|________________________________|______________________| 

... all the way to the end of the page. 

用戶填寫這個問題,空氣中的應用,當他們完成它需要打印出PDF的問題選擇「A,B,C,D,E,F,G」的空氣並在其周圍繪製圓圈。

我可以加載PDF並向它添加註釋,但問題是我不知道如何找到「A,B,C,D,E,F,G」的座標來繪製圓它。無論如何要以編程方式解決這個問題?我最後的手段是在UIImageView中打開它並繪製所有的圓圈,但是這會顯着降低分辨率,這是不好的。

回答

0

好了,我沒能找到一個簡單的方法來尋找座標「ABç..」在PDF等我,

  1. 增加了一個透明的視圖
  2. 添加到每個問題UISteppers,一個用於X和Y
  3. 增加了一個標籤,以查看以顯示(X,Y)
  4. 德魯與UIGraphicsBeginPDFContextToData
  5. 圓精心使用的步進到PDF周圍的圓移動到每個「ABç ..「而記下座標。

絕對不是最優雅的解決方案,但程序員不能總是聰明,我害怕。只花了一小時才完成(30道題)。

+0

不是你的UI視圖畫A,B,C,D ......嗎?在這種情況下,爲什麼你不能使用固定值在PDF中繪製它們? – aLevelOfIndirection

+0

由於用戶從未看過現有問卷PDF,請參閱我對您的答案的評論。 – random

0

我認爲你可能會以這種錯誤的方式去做。由於用戶在應用程序中填寫問卷,您可以用每個選定字母周圍的圓圈「繪製」視圖。當您導出PDF時,您的視圖將使用PDF上下文進行繪製。

下面是一些局部的代碼,讓你開始:

- (NSData) renderViewToPDF:(UIView*)view 
{ 
    NSMutableData *pdfData = [NSMutableData data]; 
    NSDictionary *pdfOptions = @{...}; 

    UIGraphicsBeginPDFContextToData(pdfData, _pageRect, pdfOptions); 

    [questionaireView drawRect:questionaireView.bounds]; 

    UIGraphicsEndPDFContext(); 

    return pdfData; 
} 

這個方法,所有你需要做的是將數據寫入到文件中的電話後。至於圓圈的繪製,如果你使用貝塞爾路徑,它們是基於矢量的,因此獨立於分辨率。

+0

感謝您的幫助,我可以借鑑PDF的罰款。我的問題是,我不知道每個問題的「A B C D ..」的座標。我想知道是否有辦法以某種方式在pdf樹(?)中找到它們。我想通了(困難的方式)。 – random

+0

在您的應用程序中,您的視圖是否未畫出A,B,C ...供用戶選擇?如果是的話,你的應用程序如何知道在哪裏寫A,B,C ...?還是原來的問卷也是PDF? – aLevelOfIndirection

+0

該應用程序是對現有PDF問卷的改編,所以它不會直接使用PDF直到最終並且用戶想要將結果通過電子郵件發送給某人。 – random